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

Pandas DataFrame如何将Group列值转置为列头并把日期列转为行值

实现Pandas DataFrame指定转置效果的方法

你可以通过melt+pivot的组合操作实现需求,完整可运行代码如下:

import pandas as pd

# 原始数据
df = pd.DataFrame({
                    'id': [1,2,3], 
                    'val': ['a','b','c'],
                    'val1': ['t','y','u'],
                    'Group': ['Group1','Group2','Group3'],
                    '2017_1': [45,56,78],
                    '2017_2': [87,32,42]
                 })

# 第一步:把2017_1、2017_2列从宽格式转为长格式
melted_df = df.melt(
    id_vars=['Group'],
    value_vars=['2017_1', '2017_2'],
    var_name='Date_Mon',
    value_name='metric_val'
)

# 第二步:把Group列的值转为新的列头,透视得到分组数值
pivot_df = melted_df.pivot(
    index='Date_Mon',
    columns='Group',
    values='metric_val'
).reset_index()

# 第三步:补充id、val、val1列,按需求调整列顺序
pivot_df[['id', 'val', 'val1']] = df[['id', 'val', 'val1']].iloc[:len(pivot_df)].reset_index(drop=True)
result = pivot_df[['id', 'val', 'val1', 'Date_Mon', 'Group1', 'Group2', 'Group3']]

print(result)

运行后输出的结果和你要求的完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 03:24:03