python-3.x - 如何从两列中获取包含特定值的熊猫数据框的行索引?
问题描述
如何使用两列条件获取行索引?
例如,如果我有一个看起来像这样的数据框:
如果我指定我想要“Pocket”为 0 且“Denim”为 1 的行,我想要返回整数“1”,因为 1 是满足这两个列条件的行索引。
解决方案
我认为需要过滤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
推荐阅读
- php - 在 php 中使用 ldap_modify_batch() 时“é”变成“ã©”
- python - 在网站上查找单词并获取其页面链接
- haar-classifier - haarcascade 的图像收集
- r - 如何使用 dplyr 过滤数据框并选择坐标
- error-handling - 如何处理实现 fmt::Display 的错误?
- sql - 如何创建一个基于 PostgreSQL 中的页面大小和页码计算正确偏移量的函数?
- c - AF_UNIX 套接字服务器在 C 中写入自身
- sql - 如何从字典中查找不具有某些必需属性的对象
- tensorflow - 当我使用变压器模型训练翻译器时,为什么它不能将 y 转换为张量
- questdb - 您可以在 QuestDB 中将表设为只读吗?