Python / Pandas - 系列的真值是模棱两可的。使用a.empty,a.bool(),a.item(),a.any()或a.all()

时间:2017-06-27 02:40:57

标签: python pandas data-analysis

我有两个pandas对象(每个都是从数据帧中取出的一行):

tg:

cnpj                               7350260000136
city_id                                        3
federation_unit_id                             8
primary_activity_id                            2
primary_activity_identifier           61.90-6-01
city_id                                        3
federation_unit_id                             8
CNAE                                  61.90-6-01
Name: tg, dtype: object


pred:

cnpj                       2178302000180
city_id                                3
federation_unit_id                     8
CNAE                          61.90-6-99
Name: pred, dtype: object

我试图运行以下句子:

x = 5
y = 1

if target.federation_unit_id == pred.federation_unit_id: x += y

此处的结果应为6,但我收到以下错误:

Traceback (most recent call last):
File "/file.py", line 735, in <module>
target=index(pdsim,target,tgcsv='target_1.csv',predcsv='predictor_1.csv',pred_fine=pred_fine)
File "file.py", line 610, in similarity_index if target.federation_unit_id == pred.federation_unit_id: x += y
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/pandas/core/generic.py", line 892, in __nonzero__
.format(self.__class__.__name__))
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().

有谁知道我该怎么办?

1 个答案:

答案 0 :(得分:1)

我认为你有几个问题。

  1. 这可能是一个错字,但你的第一个系列'tg'不是'目标'不确定这是否是其他系列或数据框

  2. 即使这是一个拼写错误,您的第一个系列也有两个名为'federation_unit_id'的元素,因此tg.federation_unit_id会给出两个无法与单个值进行比较的值。

  3. 如果这些不是问题,您的代码应该有效。