Pandas如何根据DataFrame中key列取值获取对应value列的纯数值
你当前筛选得到的结果是Pandas的Series类型,因此输出会附带索引、列名、数据类型等元信息,要直接获取纯数值可以参考以下几种方案:
方案1:使用
item()方法(推荐,仅当确认匹配结果唯一时使用)
直接对筛选得到的Series调用item(),可以直接返回对应的标量值,修改赋值行代码即可:value = df[df['key'] == key]['value'].item()此时打印
value得到的就是纯数值8。方案2:通过
values属性取值
先通过values属性拿到存储数据的numpy数组,再取下标获取首个匹配值:value = df[df['key'] == key]['value'].values[0]方案3:将key列设为索引(适合需要频繁查询的场景)
如果你的key列值唯一且需要多次查询,可以提前把key设为DataFrame的索引,后续直接用loc查询更高效:# 预处理:设置key为索引 df = df.set_index('key') # 查询时直接取值 value = df.loc[key, 'value']
如果存在多个匹配的key值,上述取首个值的逻辑可能不符合预期,你可以根据业务需要调整取值逻辑,比如取所有匹配值的列表、求和等。
内容的提问来源于stack exchange,提问作者lucky1928
相关产品推荐
相关产品推荐

