我刚刚开始使用 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)
此打印显示 level1
列值与未执行 upper
的原始 csv 相同。我在这里遗漏了什么吗?
谢谢
最佳答案
apply
不是 inplace 函数 - 它不会修改原始对象中的值,因此您需要将其重新赋值:
df['level1'] = df['level1'].apply(capitalizer)
或者,您可以使用 str.upper
,它应该快得多。
df['level1'] = df['level1'].str.upper()
关于python - Pandas df.apply 不修改 DataFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47055426/