有没有一种方法可以将单个df中的9,12或15列合并为3个?

时间:2020-10-29 21:07:39

标签: python pandas dataframe

我正在尝试将数据每3列分为三列的df转换。 一个例子是这样的:

C1 C2 C3 C4 C5 C6  C7  C8  C9 
1  6   9  A  D  G  1A  6A  9A
2  7  10  B  E  H  2A  7A  10A
3  8  11  C  F  I  3A  8A  11A

对此:

C1 C2 C3
1  6   9
2  7  10
3  8  11
C4 C5 C6
A  D  G
B  E  H
C  F  I
C7 C8 C9
1A 6A 9A
2A 7A 10A
3A 8A 11A

1 个答案:

答案 0 :(得分:1)

您可以使用numpy

arr = np.hsplit(np.vstack([df.columns.values, df.values]), 3)
pd.DataFrame(np.vstack(arr))

输出:

     0   1    2
0   C1  C2   C3
1    1   6    9
2    2   7   10
3    3   8   11
4   C4  C5   C6
5    A   D    G
6    B   E    H
7    C   F    I
8   C7  C8   C9
9   1A  6A   9A
10  2A  7A  10A
11  3A  8A  11A