如何匹配DataFrame中D列指定值获取同一条行对应的A列值
原始DataFrame结构
A B C D group_997 NaN Purple JMHKJALJ_06538 group_998 NaN Pink JMHKJALJ_04556 group_999 NaN Red JMHKJALJ_09211 group_995 NaN Green JMHKJALJ_16378 group_996 NaN Yellow JMHKJALJ_81324
错误原因
原代码逻辑为筛选A列包含JMHKJALJ_16378的行,但目标值实际存储在D列,列名匹配错误导致输出不符合预期。
正确实现代码
1. 精确匹配场景(推荐,符合当前需求)
直接匹配D列等于目标值的行,取对应A列的字符串结果:
result = df.loc[df['D'] == 'JMHKJALJ_16378', 'A'].iloc[0]
运行后result的值就是预期的group_995。
2. 模糊匹配场景
如果需要检索D列包含目标字符串的行,可使用str.contains方法:
result = df.loc[df['D'].str.contains('JMHKJALJ_16378'), 'A'].iloc[0]
逻辑说明
df['D'] == 'JMHKJALJ_16378'生成布尔值序列,标记所有D列等于目标值的行loc[布尔序列, 'A']筛选符合条件的行,仅返回A列的Series结构结果iloc[0]取出Series中的第一个值,得到最终的字符串格式结果
内容的提问来源于stack exchange,提问作者Iacopo Passeri
相关产品推荐
相关产品推荐

