我刚开始做大熊猫,请原谅这是不是很蠢。
我正在尝试将功能应用于某个列,但它不起作用,我也没有看到任何错误。
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
相同。我在这里错过了什么吗?
由于
答案 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'])
您可以使用上面的代码将列设为大写