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

如何将Pandas读取的世界银行宽格式碳排放数据转为三列长表

你需要的宽表转长表使用pandas.melt()方法实现更适配,你之前想到的pivot一般用于长表转宽表的反向操作。以下是可行的实现方案:

实现代码

# 1. 将作为行索引的经济体字段转为普通列
df_reset = df.reset_index(names=['Economy'])

# 2. 宽表转长表,保留经济体字段,将所有年份列转为行维度
df_long = df_reset.melt(
    id_vars = ['Economy'],
    var_name = 'year',
    value_name = 'value'
)

# 3. 可选优化:清理年份字段格式,去除YR前缀转为整数类型,方便后续时间维度分析
df_long['year'] = df_long['year'].str.replace('YR', '').astype(int)

# 4. 可选过滤:去除碳排放值为空的无效行
df_long = df_long.dropna(subset=['value'])

简化实现(stack方法)

如果你偏好更短的代码,也可以用stack方法直接实现,效果完全一致:

df_long = df.stack().reset_index()
df_long.columns = ['Economy', 'year', 'value']
# 同样可以加上上述的年份清理、空值过滤步骤

两种方案执行后都可以得到仅包含Economy、year、value三个字段的长表结构。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 04:18:02