This question already has answers here:
How to melt 2 columns at the same time?
(2个答案)
在8个月前关闭。
我有一个数据框,如下所示:
如何拆分列
预期产量:
谢谢!
编辑
不带
编辑2
使用OP提供的新数据示例:
(2个答案)
在8个月前关闭。
我有一个数据框,如下所示:
ID Date ColA1 ColB1 ColA2 ColB2 ColA3 ColB3
id1 date1 1 2 3 4 5 6
id2 date2 7 8 9 10 11 12
如何拆分列
ColA2
,ColB2
,ColA3
,ColB3
,然后将它们作为行再次合并到数据集中(考虑ID
和Date
列)?预期产量:
ID Date ColA ColB
id1 date1 1 2
id1 date1 3 4
id1 date1 5 6
id2 date2 7 8
id2 date2 9 10
id2 date2 11 12
谢谢!
最佳答案
您需要wide_to_long
pd.wide_to_long(df.reset_index(), stubnames = ['ColA', 'ColB'], i = 'index', j = 'value').reset_index(drop = True)
ColA ColB
0 1 2
1 7 8
2 3 4
3 9 10
4 5 6
5 11 12
编辑
不带
reset_index()
的输出pd.wide_to_long(df.reset_index(), stubnames = ['ColA', 'ColB'], i = 'index', j = 'value')
ColA ColB
index value
0 1 1 2
1 1 7 8
0 2 3 4
1 2 9 10
0 3 5 6
1 3 11 12
编辑2
使用OP提供的新数据示例:
pd.wide_to_long(df, stubnames = ['ColA', 'ColB'], i = ['ID', 'Date'], j = 'value').reset_index([0,1])
ID Date ColA ColB
value
1 id1 date1 1 2
2 id1 date1 3 4
3 id1 date1 5 6
1 id2 date2 7 8
2 id2 date2 9 10
3 id2 date2 11 12
10-08 08:50