使用应用功能的KeyError

时间:2019-05-20 08:25:14

标签: pandas

我有一个包含以下各列的数据框,而我只是想通过转换现有列来添加新列。我不明白为什么会收到此错误,尤其是考虑到数据帧很好,并且我可以groupbyZip而没有任何索引问题。

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')

1 个答案:

答案 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)