Python中基于共同ID匹配从两个DataFrame生成新数据表的实现问题
两个CSV按ID匹配并筛选指定字段的Pandas实现方案
前置准备
确保你已经安装了pandas库,没装的话先执行pip install pandas安装即可。
完整实现代码
import pandas as pd # 1. 读取两个CSV文件,替换为你本地的实际文件路径 df1 = pd.read_csv("第一个表的文件路径.csv") df2 = pd.read_csv("第二个表的文件路径.csv") # 2. 处理第一个表,按需筛选Job字段、保留需要的列 # 若有指定Job筛选条件,可新增过滤规则,示例:筛选Job为工程师、建筑师的写法 df1 = df1[df1['#Job'].isin(['工程师', '建筑师'])] df1_filter = df1[['#ID', '#Job', '#Wage']] # 3. 按ID做内连接,仅保留两个表都存在的ID对应的行 df_result = pd.merge(df1_filter, df2, on="#ID", how="inner") # 4. 调整字段顺序得到最终结果表 df_result = df_result[['#ID', '#Department', '#Job', '#Wage']] # 可选:导出结果为CSV文件 # df_result.to_csv("匹配结果.csv", index=False)
结果验证
运行后得到的df_result和你给出的期望输出完全一致:
| #ID | #Department | #Job | #Wage |
|---|---|---|---|
| 1 | IT | 工程师 | 8000 |
| 2 | 质量管控 | 工程师 | 7865 |
| 5 | 建筑 | 建筑师 | 4900 |
注意事项
如果你的实际CSV列名没有前缀#,直接把代码里列名的#删掉,匹配你自己的实际列名即可。
内容的提问来源于stack exchange,提问作者akoluacik
相关产品推荐
相关产品推荐

