基于条件在Pandas中筛选数据:按ID提取指定列内容
根据ID提取指定列数据的方法
推荐方法:直接使用Pandas布尔索引(无需numpy.where)
Pandas本身提供了简洁的布尔筛选方式,无需先获取行号,直接一步完成筛选:
# 筛选ID等于1810的行,仅保留Column1、Column2、Column3三列 result = data.loc[data['ID'] == 1810, ['Column1', 'Column2', 'Column3']]
data['ID'] == 1810生成一个布尔数组,标记哪些行的ID符合条件loc[行条件, 列列表]是Pandas中按标签筛选行和列的标准用法,直接得到目标数据
基于你已有的numpy.where结果提取
如果你坚持要用np.where获取的行号,可以这样操作:
import numpy as np # 获取符合条件的行索引 a = np.where(data['ID'] == 1810) # 利用行索引提取指定列 result = data.loc[a[0], ['Column1', 'Column2', 'Column3']]
np.where返回的是元组,a[0]是包含符合条件行号的数组- 同样用
loc将行号和目标列名结合,得到需要的数据
内容的提问来源于stack exchange,提问作者M Mokashi
相关产品推荐
相关产品推荐

