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

Python中合并两个数据集:内连接后数据重复问题求助

问题原因与解决方案

问题根源

你遇到的重复行问题,本质是连接键不完整导致的笛卡尔积:

  • TFC_DATA删除year列后,每个国家只有1条TFP记录(无年份维度)
  • CO2_DATA每个国家有多条分年份的记录(有年份维度)
    当仅用country做连接键时,CO2里每个国家的每一条年份数据,都会和TFC里该国家的唯一TFP记录匹配一次,自然会产生大量重复行。

解决步骤

  1. 恢复TFC_DATA的year列
    TFP指标必然是和年份对应的,你之前删除year列是错误操作,必须找回这个字段(从原始数据集重新读取,或恢复之前的备份版本)。恢复后TFC_DATA应该包含Country(或country)、year、TFP三列。

  2. 统一列名大小写
    注意你的两个数据集里国家列的大小写不一致(一个是Country,一个是country),这会导致连接失败,先统一列名:

# 统一列名为小写(或大写,保持一致即可)
TFC_DATA.rename(columns={'Country': 'country', 'TFP': 'tfp'}, inplace=True)
CO2_DATA.rename(columns={'Country': 'country'}, inplace=True)
  1. 使用多键内连接
    同时用country和year作为连接键,这样就能保证每个国家的对应年份数据精准匹配:
inner_merged = pd.merge(TFC_DATA, CO2_DATA, how="inner", on=["country", "year"])

额外验证

如果恢复year列后,发现部分国家的TFP数据年份和CO2的年份不匹配,内连接会自动只保留两者共有的country+year组合,完全符合你“仅保留共有的国家数据(且对应年份)”的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 11:25:16