尝试使用和或语句时Pandas错误

时间:2017-01-31 01:28:42

标签: python pandas

我正在尝试使用Pandas创建一些布尔变量,但是当我尝试使用“and”,“或”evalautions时,我遇到了这个错误。

代码的目的是创建一个布尔“列”,仅在X['XAlerta'] = 1X['# Produtos'] Also = 1时才为真。

X['Alerta']10变量,X['# Produtos']是整数。

这是我的代码:

X['Possui_Apenas_Alerta'] = X['XAlerta'] == 1 and X['# Produtos'] == 1

这就是错误:

ValueError                                Traceback (most recent call last)
<ipython-input-56-1e64f0aae21c> in <module>()
 56 X['Flag_Menos_1_Produto'] = X['# Produtos'] <= 1
 57 X['Flag_Mais_3_Produtos'] = X['# Produtos'] >= 3
---> 58 X['Possui_Apenas_Alerta'] = X['XAlerta'] == 1 and X['# Produtos'] == 1
 59 X['Possui_Apenas_Desemprego'] = X['XSeguroDesemprego'] == 1 and X['# Produtos'] == 1
 60 X['Possui_Alerta_Perda_Anuaide'] = X['XSeguroPerdaRoubo'] == 1 and X['XAlerta'] == 1 and X['XRecargaAnuidadeBonificada'] == 1

C:\Users\foray\Anaconda3\lib\site-packages\pandas\core\generic.py in __nonzero__(self)
915         raise ValueError("The truth value of a {0} is ambiguous. "
916                          "Use a.empty, a.bool(), a.item(), a.any() or a.all()."
--> 917                          .format(self.__class__.__name__))
918 
919     __bool__ = __nonzero__

ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().

2 个答案:

答案 0 :(得分:1)

您不能在此类链中拥有=个符号。

X['Possui_Apenas_Alerta'] = (X['XAlerta'] == 1 and X['# Produtos'] == 1)

只有括号可以解决你的问题。

答案 1 :(得分:1)

对于双向&,您需要and|需要or~需要not,还需要添加()

X['Possui_Apenas_Alerta'] = (X['XAlerta'] == 1) & (X['# Produtos'] == 1)