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

Python:获取与列值匹配的所有行的索引[duplicate]

景元忠
2023-03-14

我有以下数据框:

Rec  Channel  Value1  Value2 
Pre             10      20
Pre             35      42
Event    A      23      39
FF              50      75
Post     A      79      11
Post     B      88      69

我正在尝试为这个熊猫数据框确定适当的语法,如何为列“通道”等于A或B的所有实例编制索引。一旦找到所有实例,我想打印出来。此外,我希望能够在脚本中调用每个索引以获得进一步的应用程序。

我希望显示器是:

Rec  Channel  Value1  Value2
Event   A       23      39
Post    A       79      11
Post    B       88      69

然后我想有一个“for循环”,它遍历并分别打印出每个索引实例,这样就很容易识别并单独调用它们,以便在脚本中进一步使用。有人能给点建议吗?

共有2个答案

许展鹏
2023-03-14

使用查询

res = df.query('Channel in ["A", "B"]')

res

     Rec Channel  Value1  Value2
2  Event       A      23      39
4   Post       A      79      11
5   Post       B      88      69

如果您需要索引以便用于其他目的:

要么

idx = res.index

或者,不做res

idx = df.index[df.Channel.isin(['A', 'B'])]
公冶智刚
2023-03-14

您可以为此使用pd.Series.isin

res = df[df['Channel'].isin({'A', 'B'})]

print(res)

#      Rec Channel  Value1  Value2
# 2  Event       A      23    39.0
# 4   Post       A      79    11.0
# 5   Post       B      88    69.0

按索引返回第二行:

res2 = res.loc[2]

print(res2)

# Rec        Event
# Channel        A
# Value1        23
# Value2        39
# Name: 2, dtype: object
 类似资料:
  • 给定一个具有“boolcol”列的数据frame,我们希望找到其中“boolcol”的值==True的数据frame的索引 我目前有一种迭代的方法来完成它,它非常有效:

  • 本文向大家介绍Python Pandas 获取列匹配特定值的行的索引问题,包括了Python Pandas 获取列匹配特定值的行的索引问题的使用技巧和注意事项,需要的朋友参考一下 给定一个带有列"BoolCol"的DataFrame,如何找到满足条件"BoolCol" == True的DataFrame的索引 目前有迭代的方式来做到这一点: 这虽然可行,但不是标准的 Pandas 方式。经过一番研

  • 给定一个列为“BoolCol”的数据帧,我们想要查找数据帧的索引,其中“BoolCol”的值 == True 我目前有一种迭代的方法来完成它,它非常有效: 但这不是熊猫的正确方法。经过一些研究,我目前正在使用以下代码: 这个给了我一个索引列表,但是它们不匹配,当我通过执行以下操作来检查它们时: 结果其实是假的!! 熊猫的正确做法是什么?

  • 问题内容: 如何获得Python中索引名称的列表?这是我到目前为止的内容: 问题答案: 搜索有关使用库进行检索的信息时,会出现此问题。接受的答案说可以使用,但该方法已删除(截至2017年)。要获取,您可以使用以下代码:

  • 我知道如何通过谓词查找列表的第一个元素:Java8通过谓词查找第一个元素 有没有一种简单的方法可以得到那个元素的索引? 编辑:链接的问题确实提供了答案,但我在搜索时找不到它,因为它的措辞。因此,我宁愿保留这个问题。

  • 问题内容: 我有一个。我想获取具有特定用户名的流中(第一个)用户的索引。我并不想实际上要求对它们进行描述,而只是具有相同的用户名。 我可以想到执行此操作的丑陋方法(重复和计数),但是感觉应该有一个不错的方法可以执行此操作,可能是使用Streams。到目前为止,我拥有的最好的是: 这不是我写过的最糟糕的代码,但这不是很好。它也不是那么灵活,因为它依赖于一个映射类型的函数,该函数具有描述您要寻找的属性