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

如何对Pandas DataFrame执行透视得到指定横向宽表格式

解决方案

你要做的是长表转宽表操作,和pd.melt()(宽表转长表)对应的常用实现方法是pd.pivot(),具体操作步骤如下:

方法1:使用pivot实现(最通用)

完整代码示例

import pandas as pd

# 构造你的原始DataFrame
df = pd.DataFrame({
    "Column1": ["A", "A", "B", "B"],
    "Column2": [1, 2, 3, 4]
})

# 1. 给相同Column1分组下的行生成顺序编号,用来对应后续的Column4、Column5
df["group_seq"] = df.groupby("Column1").cumcount() + 1

# 2. 执行pivot转换为宽表
res = df.pivot(
    index="Column1",
    columns="group_seq",
    values="Column2"
).reset_index()

# 3. 重命名列名匹配你的需求
res.columns = ["Column3", "Column4", "Column5"]

print(res)

输出结果

Column3  Column4  Column5
0       A        1        2
1       B        3        4

方法2:使用groupby聚合实现(写法更简洁)

如果你的场景中每个Column1分组下的数值数量固定,也可以用聚合后拆列的写法:

res = df.groupby("Column1")["Column2"]\
        .agg(list)\
        .apply(pd.Series)\
        .reset_index()
res.columns = ["Column3", "Column4", "Column5"]

得到的结果和方法1完全一致,单分组下数值数量不一致时会自动填充NaN值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 03:39:02