Pandas df.apply no modifica DataFrame
Recién estoy comenzando con pandas, así que perdonen si esto es algo estúpido.
Estoy intentando aplicar una función a una columna pero no funciona y tampoco veo ningún error.
capitalizer = lambda x: x.upper()
for df in pd.read_csv(downloaded_file, chunksize=2, compression='gzip', low_memory=False):
df['level1'].apply(capitalizer)
print df
exit(1)
Esta impresión muestra los level1
valores de la columna igual que el csv original que no funciona upper
. Me estoy perdiendo de algo ?
Gracias
Aceptado
apply
no es una función in situ ; no modifica los valores en el objeto original, por lo que debes asignarlo nuevamente:
df['level1'] = df['level1'].apply(capitalizer)
Alternativamente, puedes usar str.upper
, debería ser mucho más rápido.
df['level1'] = df['level1'].str.upper()
df['level1'] = map(lambda x: x.upper(), df['level1'])
puedes usar el código anterior para poner tu columna en mayúsculas