系列的真值含糊不清。使用a.empty,a.bool(),a.item(),a.any()或a.all()

时间:2018-09-18 23:00:57

标签: python pandas dataframe

我遇到以下错误:系列的真值不明确。在下面的以下代码中使用a.empty,a.bool(),a.item(),a.any()或a.all(),基本上我正在尝试建立索引到索引的比较:

it = iter(file_as_list)
for line in it:
    input(line)
   ... 
    input(next(it))

我尝试使用空,但结果似乎不正确,类似于所有内容,结果不是我想要的。

请问如何纠正?

1 个答案:

答案 0 :(得分:1)

使用:

data["observation"] = pd.np.where(data["Result1"] > data["Result2"], "Class 1", "Class 2")

如果您将pandas导入为pd(使用import pandas as pd则有效,否则,如果您刚使用import pandas,则使用pandas.np.where(...)

或者,要使用列表理解语法(我认为您正在尝试这样做),请使用:

data["observation"]=["Class 1" if i["Result1"] >i["Result2"] else "Class 2" for _, i in data.iterrows()]

但是,对于大型数据框而言,这可能是非常无效的。