2017-07-22 47 views
0

我正在使用熊貓數據框,並試圖選擇yearID == 2001team_IDx == 'OAK'所在的行。 yearID列的類型爲int,而team_IDx是一個對象。下面是我使用的表達:熊貓錯誤 - 使用iloc時系列的真值不明確

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

但我不斷收到錯誤:

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

我是一個初學者,甚至不知道如何短語我的問題。我已經看過堆棧溢出的其他答案,但它們對我沒有意義。這個錯誤是什麼意思?我應該瞭解哪些基本概念能夠自行理解?我該如何解決這個問題?

回答

0

這是由於按位運算符的優先級高於邏輯運算符。您需要在每個條件附近再加一層括號:

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

謝謝!這解決了我的問題。您是否有資源可用於瞭解有關Pandas位運算符的運算符優先級的更多信息? –

+0

@NadaaTaiyab害怕我沒有比官方文檔更好的東西:)所以我幾周前開始通過在Pandas標籤中隱藏其他用途來學習熊貓。 –

+0

@NadaaTaiyab此外,請記住,如果它有幫助,你可以接受一個答案。點擊我答案旁邊的灰色檢查。它有助於。謝謝! –