堆叠数据帧列(Pandas)

2024-06-16 10:28:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在寻找一种方法,以反方向旋转数据帧。据我所知,pandas提供了一个pivot或pivot_-table方法来将EAV-df转换为“普通”df。然而,是否也有一种相反的方法呢?在

因此,鉴于数据帧:

$df userid A B C 0 1 1 0 1 1 3 1 2 1 5 0

我想将其转换为(EAV模型):

$df E A V
0 A 1 0 B 1 0 C 0 1 A 1 1 B 3 1 C 1 2 A 1 2 B 5 2 C 0

这样做最有效的方法是什么?在


Tags: 数据方法模型pandasdftable方向pivot
1条回答
网友
1楼 · 发布于 2024-06-16 10:28:37

假设userid是索引,df.stack将执行此操作:

In [133]: df.stack().reset_index().rename(columns={'userid' : 'E', 'level_1' : 'A', 0 : 'V'})
Out[133]: 
   E  A  V
0  0  A  1
1  0  B  1
2  0  C  0
3  1  A  1
4  1  B  3
5  1  C  1
6  2  A  1
7  2  B  5
8  2  C  0

如果userid不是索引,请按如下方式设置:

^{pr2}$

相关问题 更多 >