如何基于外部列表筛选含重复ID的数据集?
基于外部列表筛选数据集指定ID的数据
当然可以实现,下面是用Python pandas库的解决方案,完美适配你带重复ID的数据集:
步骤1:导入依赖并构造数据集
如果你的数据存储在本地文件(比如CSV),或直接构造DataFrame:
import pandas as pd # 构造原始数据集 data = { 'ID': ['0001', '0001', '0002', '0002', '0002', '0003', '0003', '0005', '0005'], 'Value': [0.3, 0.6, 0.7, 0.71, 0.43, 0.01, 0.2, 12, 11] } df = pd.DataFrame(data) # 定义外部目标ID列表 target_ids = ['0001', '0002', '0005']
步骤2:执行筛选
使用isin()方法直接匹配,会保留所有符合条件的行(包括重复ID的记录):
filtered_df = df[df['ID'].isin(target_ids)]
步骤3:查看结果
打印筛选后的数据集:
print(filtered_df)
输出结果与你期望的完全一致:
ID Value 0 0001 0.3 1 0001 0.6 2 0002 0.7 3 0002 0.71 4 0002 0.43 7 0005 12.0 8 0005 11.0
关键注意事项
- 确保
ID列是字符串类型:如果从CSV读取数据,要指定类型避免前导零丢失,比如:df = pd.read_csv('your_data.csv', dtype={'ID': str}) - 如果外部ID列表来自文件:可以直接读取后转为列表使用,比如:
id_list_df = pd.read_csv('target_ids.csv', dtype={'ID': str}) target_ids = id_list_df['ID'].tolist()
内容的提问来源于stack exchange,提问作者NewUsr
相关产品推荐
相关产品推荐

