我正在使用pandas数据框,我正在尝试选择yearID == 2001
和team_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]
我是初学者,甚至不确定如何说出我的问题。我已经查看了堆栈溢出的其他答案,但它们对我没有意义。这个错误是什么意思?我应该知道哪些基本概念能够自己理解它?我该如何解决这个问题?
答案 0 :(得分:0)
这是由于按位运算符的运算符优先级,其优先级高于逻辑运算符。每个条件周围都需要另一层括号:
mergeddf.loc[((mergeddf['yearID'] == 2001) & (mergeddf['teamID_x'] == 'OAK'))]