values replacing recorrer example data columna column agregar python replace pandas dataframe

python - replacing - replace values dataframe column pandas



Reemplazar algunos valores en una columna de marco de datos de pandas con otro valor (6)

Tengo un marco de datos de pandas df como se ilustra a continuación:

BrandName Specialty A H B I ABC J D K AB L

Quiero reemplazar ''ABC'' y ''AB'' en la columna BrandName por A. ¿Alguien puede ayudarme con esto?


Reemplazar

DataFrame objeto DataFrame tiene un método de replace potente y flexible:

DataFrame.replace( to_replace=None, value=None, inplace=False, limit=None, regex=False, method=''pad'', axis=None)

Tenga en cuenta que si necesita hacer cambios en su lugar, use el argumento booleano inplace para el método de replace :

En su lugar

inplace : boolean, por defecto False If True , en su lugar. Nota: esto modificará cualquier otra vista en este objeto (por ejemplo, una columna de un DataFrame). Devuelve la persona que llama si esto es True .

Retazo

df[''BrandName''].replace( to_replace=[''ABC'', ''AB''], value=''A'', inplace=True )


Creado el marco de datos:

import pandas as pd dk=pd.DataFrame({"BrandName":[''A'',''B'',''ABC'',''D'',''AB''],"Specialty":[''H'',''I'',''J'',''K'',''L'']})

Ahora use la función DataFrame.replace() :

dk.BrandName.replace(to_replace=[''ABC'',''AB''],value=''A'')


Esta solución cambiará el marco de datos existente en sí:

mydf = pd.DataFrame({"BrandName":["A", "B", "ABC", "D", "AB"], "Speciality":["H", "I", "J", "K", "L"]}) mydf["BrandName"].replace(["ABC", "AB"], "A", inplace=True)


La forma más fácil es usar el método de replace en la columna. Los argumentos son una lista de las cosas que desea reemplazar (aquí [''ABC'', ''AB''] ) y con qué desea reemplazarlas (la cadena ''A'' en este caso):

>>> df[''BrandName''].replace([''ABC'', ''AB''], ''A'') 0 A 1 B 2 A 3 D 4 A

Esto crea una nueva serie de valores, por lo que debe asignar esta nueva columna al nombre de columna correcto:

df[''BrandName''] = df[''BrandName''].replace([''ABC'', ''AB''], ''A'')


La función loc se puede usar para reemplazar múltiples valores, Documentación para ello: loc

df.loc[df[''BrandName''].isin([ABC'', ''AB''])]=''A''


Solo quería mostrar que no hay diferencia de rendimiento entre las 2 formas principales de hacerlo:

df = pd.DataFrame(np.random.randint(0,10,size=(100, 4)), columns=list(''ABCD'')) def loc(): df1.loc[df1["A"] == 2] = 5 %timeit loc 19.9 ns ± 0.0873 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each) def replace(): df2[''A''].replace( to_replace=2, value=5, inplace=True ) %timeit replace 19.6 ns ± 0.509 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each)