Pandas filtering argument of type function is not iterable
本问题已经有最佳答案,请猛点这里访问。
我在用Python来对付熊猫。
在网球比赛中,我希望按以下方式筛选数据:
- 检查获胜者是否是某个玩家
- 检查输家是否在指定的集合内
我试着用下面的方法
1 | filtered_data = df[(df.winner == player) & (df.losser in desirable_opponents)] |
其中,df是存储我的数据的数据帧对象。
我收到以下错误:
1 | TypeError: argument of type 'function' is not iterable |
我理解错误。但我还没有想出解决问题的办法。
如何进行筛选,使df.loser与多个值进行检查,而不是像df.winner==player这样的值?
你应该使用
1 | filtered_data = df[(df.winner == player) & (df.losser.isin(desirable_opponents))] |
还要考虑类似SQL的查询方法:
1 | filtered_data = df.query("winner == @player and losser in @desirable_opponents") |
号
其中,