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

Pandas如何拆分转换DataFrame行值为列并排序重构数据表

pandas按行存储字段标识转独立列实现方法

问题场景

现有如下结构的pandas DataFrame,第0列存储字段标识,需要将行存储的字段值转换为独立列,重构后支持直接通过列名索引数据:
原始DataFrame结构:

0      1
0  col_a   0
1  col_b   2
2  col_c   3
3  col_a   4
4  col_b   5
5  col_c   6

目标输出结构:

col_a  col_b  col_c
0     0      2      3
1     4      5      6

注:你提供的目标输出样例中第一行col_a值为1属于笔误,按原始数据对应值应为0

实现代码

你的数据属于固定字段循环排列的长表结构,只需要先给每组数据生成分组编号,再做透视转换即可,无需依赖其他复杂方法:

import pandas as pd

# 替换为你自己的原始DataFrame变量名
# 方法1:已知每3个字段为一组循环时使用
df['group_id'] = df.groupby(0).cumcount()

# 方法2:通用写法,无需手动指定每组字段数,自动按字段首次出现位置分组
# df['group_id'] = (df[0] == df[0].iloc[0]).cumsum() - 1

# 透视转换为宽表
result = df.pivot(index='group_id', columns=0, values=1)
# 重置索引、清理列名
result = result.reset_index(drop=True)
result.columns.name = None

执行后result即为你需要的结构化DataFrame,可直接通过result['col_a']这类方式按列名索引数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 06:48:24