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

如何通过双主键合并DataFrame,其中一个主键对应另一表的列名

实现方案

核心思路是先把宽格式存储的GDP数据转为长格式,再通过国家、年份两个字段和主表关联,2万行级别的数据量用该方案运算性能无压力。

步骤1:预处理GDP数据,宽表转长表

把原本作为列名的年份转为单独的字段,对应GDP值单独作为一列:

import pandas as pd

# 宽表转长表
gdp_long = GDP_data.melt(
    id_vars=["Country Name"],
    var_name="Year",
    value_name="GDP"
)

# 统一年份字段类型,保证和主表DF的Year列类型匹配
gdp_long["Year"] = gdp_long["Year"].astype(int)

# 处理同一国家同一年的重复GDP记录,按需调整keep参数:'first'保留第一条,'last'保留最后一条
gdp_long = gdp_long.drop_duplicates(subset=["Country Name", "Year"], keep="last")

步骤2:关联两个表得到最终结果

result = DF.merge(
    gdp_long,
    left_on=["country", "Year"],
    right_on=["Country Name", "Year"],
    how="left"
)

# 删除冗余的国家字段
result = result.drop(columns=["Country Name"])

结果说明

运行上述代码后得到的result表结构和你给出的预期输出完全一致,缺失匹配值的GDP字段会自动填充为NaN,你可以根据业务需要对空值做后续处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 18:12:00