Python:获取与列值匹配的所有行的索引
我有以下数据框:Python:获取与列值匹配的所有行的索引,python,pandas,dataframe,indexing,Python,Pandas,Dataframe,Indexing,我有以下数据框: 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 我正在尝试确定此数据帧的适当语法,以确定如何为列“Channel”等于A或B的所有实例编制索引。
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
我正在尝试确定此数据帧的适当语法,以确定如何为列“Channel”等于A或B的所有实例编制索引。一旦找到所有实例,我将打印这些实例。此外,我希望能够调用每个索引,以便在脚本中进一步应用
我希望显示器是:
Rec Channel Value1 Value2
Event A 23 39
Post A 79 11
Post B 88 69
然后我想有一个“for循环”,它遍历并分别打印出每个索引实例,这样就很容易识别并单独调用它们,以便在脚本中进一步使用。有人能提供建议吗?您可以使用
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
使用查询
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'])]
这很有效,非常感谢!我唯一感兴趣的是,我需要将按索引返回的行放在“for循环”中,以便每次在通道列中找到a或B时,循环都会单独打印每个实例(如果有意义的话)?你能提出建议吗?@Bigbellerbrand,这是另一个问题。你可以试试:这很有效,非常感谢!我唯一感兴趣的是,我需要将按索引返回的行放在“for循环”中,以便每次在通道列中找到a或B时,循环都会单独打印每个实例(如果有意义的话)?你能告诉我吗?我已经更新了我的帖子