2024-09-26 18:09:39 发布
网友
我正在寻找一种方法,以反方向旋转数据帧。据我所知,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
这样做最有效的方法是什么?在
假设userid是索引,df.stack将执行此操作:
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不是索引,请按如下方式设置:
假设
userid
是索引,df.stack
将执行此操作:如果
^{pr2}$userid
不是索引,请按如下方式设置:相关问题 更多 >
编程相关推荐