Python Pandas: Getting the Index of All Rows that Match a Column Value
本问题已经有最佳答案,请猛点这里访问。
我有以下数据框:
1 2 3 4 5 6 7 | 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 |
我正在尝试确定此pandas数据框的适当语法,以确定如何为列"channel"等于a或b的所有实例编制索引。找到所有实例后,我将打印出这些实例。此外,我希望能够调用每个索引,以获得脚本中的进一步应用程序。
我希望显示器是:
1 2 3 4 | Rec Channel Value1 Value2 Event A 23 39 Post A 79 11 Post B 88 69 |
号
然后,我希望有一个"for循环",它分别地遍历并打印出每个索引实例,这样就很容易单独地识别和调用它们,以便在脚本中进一步使用。有人能提出建议吗?
您可以使用
1 2 3 4 5 6 7 8 | 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 |
按索引返回第二行:
1 2 3 4 5 6 7 8 9 | res2 = res.loc[2] print(res2) # Rec Event # Channel A # Value1 23 # Value2 39 # Name: 2, dtype: object |
号
使用
1 2 3 4 5 6 7 8 | 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 |
如果您想要索引以便可以用于其他目的:
要么
1 | idx = res.index |
。
或者,不制作EDOCX1[2]
1 | idx = df.index[df.Channel.isin(['A', 'B'])] |