如何基于存储指定值的array对DataFrame按id字段进行筛选
Pandas DataFrame 按指定id数组筛选行的实现方法
核心实现代码
直接使用pandas的isin()方法即可完成匹配筛选:
import pandas as pd import numpy as np # 你的示例id数组 df = np.array([10,11,12]) # data为你的原始DataFrame # 筛选逻辑:仅保留id在df数组中存在的行 filtered_data = data[data['id'].isin(df)]
逻辑说明
data['id'].isin(df)会遍历id列的每一个值,判断该值是否存在于id数组df中,返回长度和DataFrame行数一致的布尔序列- 用该布尔序列对DataFrame做索引筛选,最终只会保留判断结果为
True的行,也就是id值在指定数组中的行
可选验证操作
如果需要确认筛选结果是否符合预期,可以执行以下代码查看筛选后保留的唯一id列表:
print(filtered_data['id'].unique())
注意事项
如果筛选结果为空,需要先校验
id列的数据类型和df数组中元素的数据类型是否一致,类型不匹配会导致无法正常匹配。
内容的提问来源于stack exchange,提问作者Bikash Jha
相关产品推荐
相关产品推荐

