首页 > 解决方案 > Pandas - ValueError:Series 的真值不明确。使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()。我错过了什么?

问题描述

所以我有一个熊猫数据框

print(data['Campaign Name'])

将返回

0 something
1 NaN
2 NaN
3 NaN

所以我有一个代码

data.apply(lambda x : data['Event Code'] if data['Campaign Name'].isna() else data['Campaign Name'])

当我应用此功能时,他们返回一个错误说

ValueError:Series 的真值不明确。使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()。

我不完全确定它们是如何模棱两可data['Campaign Name'].isna()的,就像返回系列一样,比如

False
True
True
True

我错过了什么?

标签: pythonpandasdataframe

解决方案


不要调用数据框apply,调用x. 另外我希望您的意思是axis=1按行计算,而不是按列计算:

data.apply(lambda x : x['Event Code'] if x['Campaign Name'].isna() else x['Campaign Name'], axis=1)

另外为什么不直接使用fillna

data['Campaign Name'].fillna(data['Event Code'])

fillnaNone用其他东西填充值......在这种情况下是Event Code列。


推荐阅读