【发布时间】:2018-08-22 07:11:53
【问题描述】:
如何使用两个列条件获取行索引?
例如,如果我有一个看起来像这样的数据框:
如果我指定我想要“Pocket”为 0 且“Denim”为 1 的行,我想要返回整数“1”,因为 1 是满足这两个列条件的行索引。
【问题讨论】:
标签: python-3.x pandas
如何使用两个列条件获取行索引?
例如,如果我有一个看起来像这样的数据框:
如果我指定我想要“Pocket”为 0 且“Denim”为 1 的行,我想要返回整数“1”,因为 1 是满足这两个列条件的行索引。
【问题讨论】:
标签: python-3.x pandas
我认为需要按boolean indexing 过滤,但对于一般解决方案,使用next 返回第一个匹配的行索引,如果不存在值(掩码返回所有False 值),则使用默认参数:
df = pd.DataFrame({'Product':['Jeans','Shorts','Jeans'],
'Pocket':[1,0,1],
'Denim':[0,1,1]}, index=[4,8,10])
print (df)
Product Pocket Denim
4 Jeans 1 0
8 Shorts 0 1
10 Jeans 1 1
mask = (df["Pocket"] == 0) & (df["Denim"] == 1)
a = next(iter(df[mask].index), 'not exist')
print (a)
8
mask = (df["Pocket"] == 0) & (df["Denim"] == 0)
a = next(iter(df[mask].index), 'not exist')
print (a)
not exist
【讨论】: