此问题在此处已有答案:
(13个答案)
16小时前关门了。
我运行一个“if...else...”语句,类似于:
if df['column1']==0:
df['column2']=0
else:
df['column2']=100*['column3']
得到如下“数值误差”:The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all()
由于我是Python新手,我希望你能告诉我这个错误的潜在原因。我还没有在StackOverflow上找到类似的问题。(不幸的是)我不能提供一个数据示例。
谢谢你。
2条答案
按热度按时间yqkkidmi1#
希望你喜欢学习python:)
在你的代码中,这意味着你将第一列的所有值与零进行比较,有时候值等于零,有时候不等于零。2这会引起歧义。
如果你想用if语句创建新列,你可以使用apply函数。2它将比较每一行中的值。
jdgnovmf2#
df['column1']==0
返回一系列布尔值。因此,if
语句实质上等效于if
语句应该计算True
(因为它不是零长度)还是False
(因为它有False
值)?目前还不清楚,因此,panda生成了一个ValueError
。根据您的使用情形,可以使用
any
或all
另见。