如何基于多列条件查询Pandas DataFrame中的目标值
Pandas多条件查询DataFrame指定列的值
首先你的原始DataFrame定义如下:
import pandas as pd df1 = pd.DataFrame([ ['a', 5, 9], ['b', 4, 61], ['c', 24, 9]], columns=['name', 'attr11', 'attr12'])
你原本用单条件语句选中attr12列中name等于'b'的值:
df1.loc[(df1['name'] == 'b'), 'attr12'].item()
要实现name等于'b'且attr11等于4的多条件查询,只需要把多个条件用&连接,并且每个条件单独用括号包裹(避免运算符优先级问题),修改后的语句如下:
df1.loc[(df1['name'] == 'b') & (df1['attr11'] == 4), 'attr12'].item()
这样就能精准定位到符合两个条件的attr12列的值61了。如果后续数据中可能存在多个符合条件的行,建议去掉.item(),改用.tolist()获取所有结果,避免因返回多个值报错。
内容的提问来源于stack exchange,提问作者user3732793
相关产品推荐
相关产品推荐

