如何合并两个同列CSV文件并整合CUSTOMER ID对应的DATE数据?
解决CSV合并问题:匹配CUSTOMER ID并保留所有对应DATE
方法1:Python Pandas实现
这是最灵活高效的方案,适合处理批量数据:
- 导入pandas库,读取两个CSV文件
- 使用左连接保留第一个CSV的所有CUSTOMER ID,同时匹配第二个CSV中对应ID的所有DATE条目
- 输出合并后的结果到新CSV
代码示例:
import pandas as pd # 读取两个CSV文件,替换成你的实际文件名 df_customer = pd.read_csv('customer_list.csv') df_date = pd.read_csv('customer_dates.csv') # 左连接合并,以CUSTOMER ID为匹配键 merged_result = pd.merge(df_customer, df_date, on='CUSTOMER ID', how='left') # 保存结果,index=False避免生成多余的索引列 merged_result.to_csv('merged_customer_dates.csv', index=False)
说明:左连接会保留第一个CSV的所有200个ID,若某个ID在第二个CSV中有多个DATE,会自动生成多行对应;若ID在第二个CSV中无匹配数据,DATE列会显示NaN,可根据需求用fillna()填充空值。
方法2:Excel Power Query实现
适合不熟悉代码的用户,可视化操作更直观:
- 打开Excel,依次点击「数据」>「获取数据」>「从文件」>「从CSV」,分别导入两个CSV到Power Query编辑器
- 选中第一个表(仅含CUSTOMER ID的表),点击「合并查询」>「合并查询作为新查询」
- 合并设置:选择第二个表,匹配列选「CUSTOMER ID」,连接类型选「左外部(从第一个表获取所有行,从第二个表匹配行)」
- 点击确定后,找到新生成的匹配列,点击列名旁的展开按钮,选择「DATE」列并确认
- 点击「关闭并上载」,将结果导入Excel工作表,最后另存为CSV即可
方法3:SQLite命令行实现
适合熟悉SQL的用户,轻量无需额外安装:
- 打开SQLite命令行,执行以下命令导入数据并查询:
-- 设置CSV模式并导入两个文件 .mode csv .import customer_list.csv table_customer .import customer_dates.csv table_date -- 执行左连接查询并导出结果 .headers on .mode csv .output merged_result.csv SELECT table_customer."CUSTOMER ID", table_date.DATE FROM table_customer LEFT JOIN table_date ON table_customer."CUSTOMER ID" = table_date."CUSTOMER ID"; .quit
内容的提问来源于stack exchange,提问作者Kelb
相关产品推荐
相关产品推荐

