2017-04-19 38 views
1

我使用Python和Pandas。類型函數的熊貓過濾參數是不可迭代的

在網球比賽的情況下,我想通過以下方式來篩選我的數據:

  • 檢查贏家是某個選手
  • 檢查失敗者是一個指定的範圍內設置

我試圖做到這一點通過以下方式

filtered_data = df[(df.winner == player) & (df.losser in desirable_opponents)] 

其中df是存儲我的數據的DataFrame對象。

我收到以下錯誤:

TypeError: argument of type 'function' is not iterable 

我理解錯誤。但我還沒有想出辦法解決它。

我怎麼能做的過濾,使df.loser檢查許多值,而不是隻有一個像df.winner ==播放器?

回答

3

你應該使用isin

filtered_data = df[(df.winner == player) & (df.losser.isin(desirable_opponents))] 
+0

謝謝!我知道必須有一種方法來解決這個問題,使用少於10個額外的字符。 –

2

考慮也類似SQL的query方法:

filtered_data = df.query("winner == @player and losser in @desirable_opponents") 

其中player是一個標量和desirable_opponents是一個類似數組的變量(列表,一維數組, Pandas.Series等)

+1

謝謝你的答案。我決定選擇另一個作爲真正的答案,因爲它接近我的原始設計 –

+0

@DanielHernandez,當然! :-) – MaxU

相關問題