如何拆分列并将其合并为行? [英] How to split columns and merge them as rows?
本文介绍了如何拆分列并将其合并为行?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个数据框,如下所示:
I have a data frame as follows:
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
列)?
How can I split the columns ColA2
, ColB2
, ColA3
, ColB3
and merge them again to the dataset as rows (considering the ID
and Date
columns)?
预期输出:
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()
Edit
Output without 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
Edit2
使用OP提供的新数据示例:
Edit2
With the new data sample provide by 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
这篇关于如何拆分列并将其合并为行?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文