我有一个包含以下各列的数据框,而我只是想通过转换现有列来添加新列。我不明白为什么会收到此错误,尤其是考虑到数据帧很好,并且我可以groupby
上Zip
而没有任何索引问题。
print(df.columns)
# Index(['First Col', 'Year', 'Submitted', 'Allowed', 'Provided', 'X', 'Zip'],
# dtype='object')
print(df['Zip'])
# 0 10523
# 1 11803
# 2 22939
# 3 21742
# 4 21801
# 5 21804
# ...
df['NEW'] = df.apply(lambda row: cool_fn(row['Zip']))
KeyError: ('Zip', 'occurred at index First Col')
答案 0 :(得分:0)
要处理每行,必须将axis=1
添加到DataFrame.apply
:
df['NEW'] = df.apply(lambda row: cool_fn(row['Zip']), axis=1)
或使用Series.apply
,然后应省略lambda:
df['NEW'] = df['Zip'].apply(cool_fn)