类型函数的熊猫过滤参数不可迭代[重复]

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,当然! :-)

以上是关于类型函数的熊猫过滤参数不可迭代[重复]的主要内容,如果未能解决你的问题,请参考以下文章

熊猫不显示第一列[重复]

根据某个(非零)值删除数据帧(熊猫)中的行[重复]

TypeError:浮点对象在我的代码中不可迭代[重复]

具有不可注入参数的服务和通用类的 Blazor 构造函数注入 [重复]

仅将熊猫值复制到字典:抑制索引 [重复]

当列数据类型为列表时如何过滤熊猫数据框