Pandas df.apply不会修改DataFrame

时间:2017-11-01 12:57:00

标签: python pandas dataframe apply

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

我正在尝试将功能应用于某个列,但它不起作用,我也没有看到任何错误。

 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)

此图片显示level1列值与原始csv未执行upper相同。我在这里错过了什么吗?

由于

2 个答案:

答案 0 :(得分:11)

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

df['level1'] = df['level1'].apply(capitalizer)

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

df['level1'] = df['level1'].str.upper()

答案 1 :(得分:2)

df['level1'] = map(lambda x: x.upper(), df['level1'])

您可以使用上面的代码将列设为大写