You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何比对两个行列数不同的CSV文件,通过公共字段关联补充对应数据

实现方案

numpy的where方法适用于单数据集的条件赋值,跨数据集关联匹配时容易出现索引错位,推荐使用专门处理结构化表格数据的Pandas库实现该需求,代码如下:

  • 第一步:读取两个CSV文件
import pandas as pd

# 替换为你本地的文件路径
df1 = pd.read_csv("file1.csv")
df2 = pd.read_csv("file2.csv")
  • 第二步:执行左关联合并
    以文件1的全部数据为基准,按公共字段PRODUCT SERIAL匹配文件2的对应字段,未匹配到的字段值默认填充为NaN,手动替换为N/A即可:
# 左连接合并
merged_df = pd.merge(
    left=df1,
    right=df2[["PRODUCT SERIAL", "Shipment Day", "Price"]],
    on="PRODUCT SERIAL",
    how="left"
)

# 替换空值为N/A
merged_df = merged_df.fillna("N/A")
  • 第三步:导出合并结果
# 导出为新CSV,index=False表示不导出pandas自动生成的行索引
merged_df.to_csv("merged_result.csv", index=False)

注意事项

  • 若匹配结果全为N/A,可先检查两个文件的PRODUCT SERIAL字段格式是否一致,比如是否存在一个是数字格式一个是字符串格式、字段值前后有多余空格的情况,合并前可先统一格式:
df1["PRODUCT SERIAL"] = df1["PRODUCT SERIAL"].astype(str).str.strip()
df2["PRODUCT SERIAL"] = df2["PRODUCT SERIAL"].astype(str).str.strip()
  • 若有重名字段需求,可在pd.merge方法中添加suffixes参数自定义两个表重名字段的后缀,避免字段被覆盖。

内容的提问来源于stack exchange,提问作者re-learn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 15:54:05