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

Pandas DataFrame转置问题:将特定结构数据表转换为指定格式

解决方法:将长格式DataFrame转换为宽格式

嘿,这个需求很常见,就是把长格式数据转成宽格式嘛,用Pandas的几个内置函数就能轻松实现,我给你两种靠谱的方法:

第一步:先构造原始数据(方便你复现测试)

import pandas as pd

# 模拟你提供的原始DataFrame结构
df = pd.DataFrame({
    'index': ['A', 'B', 'C'],
    'price': [2, 3, 4],
    'Date': ['XX', 'XX', 'XX']
}).set_index('index')

方法1:使用pivot函数(最直观的方式)

pivot函数专门用来做这种行列转换,指定好行、列、值的对应关系就行:

# 执行转换
result = df.pivot(index='Date', columns=df.index, values='price')

# 调整格式,去掉多余的索引/列名称
result.columns.name = None  # 移除列的名称标签
result.index.name = 'Index'  # 把行索引命名为你要的"Index"

方法2:使用set_index + unstack(更灵活的底层操作)

如果你想理解转换的底层逻辑,可以用这种组合方式:

# 先把Date和原index组合成多级索引,再把原index转成列
result = df.set_index('Date', append=True)['price'].unstack(level=0)

# 调整索引和列名到目标格式
result = result.T.rename_axis('Index').rename_axis(None, axis=1)

最终结果

两种方法运行后都会得到你想要的格式:

IndexABC
XX234

补充说明:如果你的数据里有多个不同的Date值,这两种方法也能自动按Date分组转换,完美适配多场景~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 03:58:03