当前位置: 首页 > 知识库问答 >
问题:

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

柯鸿振
2023-03-14

我正在使用PyThon和熊猫。

在网球比赛中,我想通过以下方式过滤我的数据:

  • 检查获胜者是某个玩家
  • 检查失败者是否在指定的集合内

我试着用下面的方法来做

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

其中df是存储我的数据的数据帧对象。

我得到以下错误:

TypeError: argument of type 'function' is not iterable

我理解错误。但是我还没有想出办法来解决它。

我如何进行过滤,使df.loser根据许多值进行检查,而不是像df.winner==player这样的值?

共有2个答案

党权
2023-03-14

还要考虑SQL类查询方法:

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

其中,player是一个标量变量,player是一个类似数组的变量(列表、1D数组、熊猫系列等)

鲜于宏义
2023-03-14

你应该使用isin

filtered_data = df[(df.winner == player) & (df.losser.isin(desirable_opponents))]
 类似资料:
  • 我当时正在读一本名为《现代Java在行动》的书,其中一部分代码我无法理解。 作者表示,代码不会终止。原因是无法在过滤器中知道数字是否继续增加,因此它会无限地继续过滤它们! 我不明白原因。有人能解释一下为什么吗。

  • 这是我的对象(确保它是typeof对象): 为什么使用对我不起作用? .过滤器不是函数 建议的对象替代方案是什么?

  • 我正在寻找通过以下条件过滤df的方法: 由创建的

  • 问题内容: 我有很多行的python pandas数据框。从这些行中,我想切出并且仅使用“ body”列中包含单词“ ball”的行。为此,我可以这样做: 问题是,我希望它不区分大小写,这意味着如果出现Ball或bAll一词,我也希望它们。进行不区分大小写的搜索的一种方法是将字符串转换为小写,然后以这种方式搜索。我想知道如何去做。我试过了 但这是行不通的。我不确定是否应该在此等性质上使用lambd

  • 问题内容: 我有一个大数据框,然后尝试将其拆分。我用 但它返回一个错误 我该如何解决? 问题答案: IIUC您需要以下内容: 您需要将每个块附加到列表中,然后用于将它们全部串联起来,我也认为可能没有必要,但是我可能错了

  • 问题内容: 我有一个数据框 ,它有一 列。我想创建两个新的数据框。一个包含 年份等于的所有行 ,另一个数据框包含 年份不等于的所有行 。我知道您可以这样做,`df.ix[‘2000-1-1’ ‘2001-1-1’]`但是为了获得2000年中没有的所有行,需要创建2个额外的数据帧,然后进行串联/联接。 有这样的办法吗? 这段代码不起作用,但是有什么类似的方法吗? 问题答案: 您可以使用datetim