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

按SKU_id匹配合并两个不同大小Pandas DataFrame的方法咨询

Pandas双表按SKU_id匹配追加字段解决方案

核心逻辑是使用pandas内置的merge关联方法实现,操作前需要先统一两个表SKU_id字段的数据类型,避免因类型不匹配(df中为浮点型、data中为整型)导致关联失败。

操作步骤

步骤1:统一SKU_id数据类型

# 将两个表的SKU_id统一转为字符串类型,规避浮点精度、类型差异带来的匹配问题
df['SKU_id'] = df['SKU_id'].astype('Int64').astype(str)
data['SKU_id'] = data['SKU_id'].astype(str)

如果确认SKU_id不存在非整数值,也可以统一转为整型:

df['SKU_id'] = df['SKU_id'].astype('Int64')
data['SKU_id'] = data['SKU_id'].astype('Int64')

步骤2:关联两个表

为了避免df中同一个SKU_id重复(示例中MILLER GENUINE DRAFT对应SKU_id出现了2次)导致合并后行数膨胀,先对df做去重处理,再用左连接合并:

# 按SKU_id对df去重,保留第一条记录即可
df_unique = df.drop_duplicates(subset='SKU_id', keep='first')
# 左连接合并,保留data的全部行,匹配追加商品名称
result = data.merge(df_unique[['SKU_id', 'Product Name']], on='SKU_id', how='left')

参数说明

  • on='SKU_id':指定两个表关联的公共字段
  • how='left':左连接逻辑,完全保留左表data的所有行,右表df中没有对应SKU_id的记录时,Product Name字段会填充NaN,完全符合为data每一行追加商品名称的需求
  • 仅取df的SKU_id和Product Name两字段参与合并,避免引入df中其他多余字段

内容的提问来源于stack exchange,提问作者HeinrichCode

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 14:09:03