如何用Python Pandas合并CSV:匹配列关联+保留不匹配行填充N/A
解决方案:Pandas实现CSV左连接并填充缺失值
你需要的是**左连接(left join)**保留发货记录的所有行,再将匹配不到的字段填充为"N/A"。以下是完整的可运行代码:
import pandas as pd # 读取两个CSV文件 shipments = pd.read_csv('shipments.csv') products = pd.read_csv('products.csv') # 执行左连接,基于product_code字段 merged_df = pd.merge( shipments, products, on='product_code', how='left' # 关键:保留左表(shipments)的所有行 ) # 将缺失值填充为"N/A" merged_df.fillna('N/A', inplace=True) # 保存合并后的结果到新CSV merged_df.to_csv('merged_shipments.csv', index=False)
关键步骤说明:
- 左连接设置:
how='left'确保shipments.csv的每一行都会被保留,哪怕在products.csv中找不到匹配的product_code。 - 缺失值填充:
fillna('N/A')会把合并后description和category列中的空值(NaN)替换成指定的"N/A"。inplace=True直接修改原DataFrame,避免创建新对象。 - 保存结果:
to_csv的index=False参数避免把DataFrame的索引列写入CSV,符合你预期的输出格式。
运行这段代码后,生成的merged_shipments.csv就会和你给出的预期输出完全一致。
内容的提问来源于stack exchange,提问作者user21677098
相关产品推荐
相关产品推荐

