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

Python Pandas 如何将宽格式奖牌DataFrame转换为长格式堆叠表

Pandas宽表转长表解决方案

不需要手动遍历每年生成DataFrame,直接用pandas内置的melt函数即可高效实现需求,代码更简洁,性能也远高于循环遍历方案。

1. 先构造示例数据验证

import pandas as pd

# 按照你给出的示例构造原始宽格式DataFrame
df_wide = pd.DataFrame([
    {"Year": 1896, "Country": "阿富汗", "Gold": 5, "Silver": 4, "Bronze": 3},
    {"Year": 1896, "Country": "阿尔及利亚", "Gold": 1, "Silver": 2, "Bronze": 3}
])

2. 执行宽转长操作

df_long = df_wide.melt(
    # 保留不需要展开的标识列
    id_vars = ["Year", "Country"],
    # 指定需要展开为行的奖牌列
    value_vars = ["Gold", "Silver", "Bronze"],
    # 展开后的奖牌类型字段名
    var_name = "medal",
    # 展开后的奖牌数量字段名
    value_name = "no of medals"
)

输出结果

最终得到的df_long就是你需要的长格式数据,样例如下:

YearCountrymedalno of medals
1896阿富汗Gold5
1896阿尔及利亚Gold1
1896阿富汗Silver4
1896阿尔及利亚Silver2
1896阿富汗Bronze3
1896阿尔及利亚Bronze3

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 17:45:01