首页 > 解决方案 > 如何从两列中获取包含特定值的熊猫数据框的行索引?

问题描述

如何使用两列条件获取行索引?

例如,如果我有一个看起来像这样的数据框:

数据框

如果我指定我想要“Pocket”为 0 且“Denim”为 1 的行,我想要返回整数“1”,因为 1 是满足这两个列条件的行索引。

标签: python-3.xpandas

解决方案


我认为需要过滤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

推荐阅读