我有一个表如下:
| 身份证|项目a| B|项目a| B|(c)秘书长的报告|颜色|
| - ------|- ------|- ------|- ------|- ------|- ------|- ------|
| 一百二十三|1个|六个|七|三个|四个|蓝色|
| 四百五十六|第二章|八个|九|七|五个|黄色|
正如你所看到的,一些列有相同的。我想做的是堆叠列与相同的名称在对方的顶部(使表的长度比宽度)。我已经看了堆叠,融化和透视的文档,但我找不到一个类似的问题,因为我在这里。有人能告诉我如何才能实现这一点吗?
仅供参考,以下是我需要的表:
| 身份证|项目a| B|(c)秘书长的报告|颜色|
| - ------|- ------|- ------|- ------|- ------|
| 一百二十三|1个|六个|四个|蓝色|
| 一百二十三|七|三个|四个|蓝色|
| 四百五十六|第二章|八个|五个|黄色|
| 四百五十六|九|七|五个|黄色|
3条答案
按热度按时间m528fe3b1#
您可以使用
groupby.cumcount
进行重复数据消除,然后使用stack
和groupby.ffill
消除缺失值:输出:
yyyllmsg2#
2w2cym1i3#
一个选项是从pyjanitor使用pivot_longger;我添加了一个临时列
c1
,因此所有列的数量都是平衡的: