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

如何转置pandas指定列 保留唯一Year值实现长表转目标结构宽表

你需要的是长表转宽表操作,直接使用pandas内置的pivot方法即可实现需求,无需手动全量转置:

实现代码

# 基础用法,适用于同年同国家只有1条人口记录的场景
pivoted_df = data_df.pivot(
    index="Year",
    columns="Country",
    values="Population"
).reset_index()

参数说明

  • index="Year":指定用Year作为行维度,自动保留唯一的年份值
  • columns="Country":将Country列的所有唯一值作为新的列名
  • values="Population":指定新表格的单元格值来自Population列,年份和国家匹配不上的位置自动填充NaN
  • 末尾加reset_index()是为了将Year从索引转为普通表格列,和你要求的输出格式对齐

特殊场景兼容

如果全量数据中存在同一年份同一国家有多条人口记录的情况,pivot会触发报错,此时可以改用pivot_table方法自行指定聚合规则:

# 示例为取同年同国家人口的均值,aggfunc可根据需求替换为sum、first等
pivoted_df = data_df.pivot_table(
    index="Year",
    columns="Country",
    values="Population",
    aggfunc="mean"
).reset_index()

运行以上代码得到的结果和你给出的预期示例完全一致。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 07:39:01