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

如何将指定结构的Pandas DataFrame宽表转换为目标结构的长表?

实现方法

完全可以通过Pandas内置的melt函数完成这种宽表转长表的需求,具体代码如下:

import pandas as pd

# 原始数据创建代码
inp = [{'age 15-19':10, 'age 20-30':100, 'Gender': 'F'}, {'age 15-19':11,'age 20-30':110, 'Gender': 'M'}, {'age 15-19':12,'age 20-30':120, 'Gender': 'F'}]
df = pd.DataFrame(inp)

# 核心转换逻辑
result = df.melt(
    # 保留不需要展开的列
    id_vars = ['Gender'],
    # 指定需要展开为行的年龄列
    value_vars = ['age 15-19', 'age 20-30'],
    # 展开后的年龄分类列命名
    var_name = 'Age',
    # 展开后的数值列命名
    value_name = 'Number'
)

# 处理Age列的前缀,只保留年龄区间内容
# 如果你的df列名已经自动转为带下划线的age_15-19,把下面的空格改成下划线即可
result['Age'] = result['Age'].str.replace('age ', '', regex=False)

# 输出结果
print(result)

运行上述代码后得到的输出和你需要的结构完全一致。melt是Pandas专门用来做宽表转长表的工具,核心作用就是把多列的分类数据展开为行,非常适配当前场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 20:51:01