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

如何转置按Date分组的DataFrame数据?

重塑DataFrame:将多层行索引转置为列

原始DataFrame结构

Date     Name                   
01-2021  Mark                     714.53
         Chris                 112681.49
         Ashley                  3127.07
         Brad                   16875.00
         Michelle              429520.04
                                 ...    
12-2021  Mark                  429520.04
         Chris                 975261.29
         Ashley                377449.79
         Brad                   53391.73
         Michelle                4286.00

目标格式

Name        01-2021           12-2021
Mark         714.53         429520.04
Chris     112681.49         975261.29
Ashley      3127.07         377449.79
Brad       16875.00          53391.73
Michelle  429520.04           4286.00

解决方案

用Pandas的unstack()方法可快速实现转换,步骤如下:

  1. 设置数值列名:如果原始DataFrame的数值列未命名,先给它指定列名(比如Value):
df.columns = ['Value']
  1. 转置索引层级:将Date层级的行索引转换为列索引:
# 把Date从行索引转为列,Name保留为行索引
transposed_df = df.unstack(level='Date')
  1. 清理列名结构:移除自动生成的列层级,只保留日期作为列名:
transposed_df.columns = transposed_df.columns.get_level_values(1)
  1. 调整索引为普通列:将Name从行索引转为第一列,同时清除多余的轴标签:
transposed_df = transposed_df.reset_index().rename_axis(None, axis=1)

完整示例代码

import pandas as pd

# 模拟原始DataFrame数据
data = [
    ('01-2021', 'Mark', 714.53),
    ('01-2021', 'Chris', 112681.49),
    ('01-2021', 'Ashley', 3127.07),
    ('01-2021', 'Brad', 16875.00),
    ('01-2021', 'Michelle', 429520.04),
    ('12-2021', 'Mark', 429520.04),
    ('12-2021', 'Chris', 975261.29),
    ('12-2021', 'Ashley', 377449.79),
    ('12-2021', 'Brad', 53391.73),
    ('12-2021', 'Michelle', 4286.00)
]

df = pd.DataFrame(data, columns=['Date', 'Name', 'Value']).set_index(['Date', 'Name'])

# 执行转置操作
transposed_df = df.unstack(level='Date')
transposed_df.columns = transposed_df.columns.get_level_values(1)
transposed_df = transposed_df.reset_index().rename_axis(None, axis=1)

print(transposed_df)

运行代码后输出的结果与目标格式完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 23:10:30