Pandas错误 - 使用iloc时系列的真值是不明确的

时间:2017-07-22 20:50:31

标签: python pandas dataframe

我正在使用pandas数据框,我正在尝试选择yearID == 2001team_IDx == 'OAK'的行。 yearID列的类型为int,team_IDx是一个对象。以下是我使用的表达式:

mergeddf.loc[(mergeddf['yearID'] == 2001 & mergeddf['teamID_x'] == 'OAK')]

但我一直收到错误:

TypeError: cannot compare a dtyped [object] array with a scalar of type [bool]

我是初学者,甚至不确定如何说出我的问题。我已经查看了堆栈溢出的其他答案,但它们对我没有意义。这个错误是什么意思?我应该知道哪些基本概念能够自己理解它?我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

这是由于按位运算符的运算符优先级,其优先级高于逻辑运算符。每个条件周围都需要另一层括号:

mergeddf.loc[((mergeddf['yearID'] == 2001) & (mergeddf['teamID_x'] == 'OAK'))]