Pandas df.apply不会修改DataFrame

Rah*_*eel 2 python apply dataframe pandas

我刚开始做大熊猫,请原谅这是不是很蠢.

我正在尝试将一个函数应用于列,但它不起作用,我也没有看到任何错误.

 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)
Run Code Online (Sandbox Code Playgroud)

此打印显示的level1列值与原始csv不相同upper.我错过了什么吗?

谢谢

cs9*_*s95 12

apply不是inplace函数 - 它不会修改原始对象中的值,因此您需要将其分配回来:

df['level1'] = df['level1'].apply(capitalizer)
Run Code Online (Sandbox Code Playgroud)

或者,您可以使用str.upper,它应该更快.

df['level1'] = df['level1'].str.upper()
Run Code Online (Sandbox Code Playgroud)