类型函数的熊猫过滤参数不可迭代[重复]
Posted
技术标签:
【中文标题】类型函数的熊猫过滤参数不可迭代[重复]【英文标题】:Pandas filtering argument of type function is not iterable [duplicate] 【发布时间】:2017-09-16 00:53:00 【问题描述】:我正在将 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 == player 这样的值?
【问题讨论】:
【参考方案1】:你应该使用isin
filtered_data = df[(df.winner == player) & (df.losser.isin(desirable_opponents))]
【讨论】:
谢谢!我知道必须有一种方法可以使用少于 10 个额外字符来解决这个问题。【参考方案2】:考虑类似 SQL 的 query 方法:
filtered_data = df.query("winner == @player and losser in @desirable_opponents")
其中player
是标量变量,desirable_opponents
是类数组变量(列表、一维数组、Pandas.Series 等)
【讨论】:
非常感谢您的回答。我决定选择另一个作为真正的答案,只是因为它更接近我的原始设计 @DanielHernandez,当然! :-)以上是关于类型函数的熊猫过滤参数不可迭代[重复]的主要内容,如果未能解决你的问题,请参考以下文章