使用pandas将列追加到列

时间:2018-07-26 14:31:25

标签: python pandas

我有一个具有以下结构的数据集,大小各不相同。

A B C D E F G H I J
1 8 7 1 3 4 7 1 5 9 
8 9 1 4 7 4 5 2 1 2 
8 9 7 7 4 2 9 7 1 0 

我想要做的是将所有列追加到第一列,并获得如下结果:

A
1
8
8
8
9
9
7
1
7
1
7
...

到目前为止,我的代码:     将熊猫作为pd导入

df = pd.read_csv("data.csv", header=None, delimiter=";")

for column in df:
    df.append(column)

print(df)

我认为它应该通过遍历所有列并使用.append将它们附加到第一列来工作。

感谢您的帮助

3 个答案:

答案 0 :(得分:2)

我相信这里最好使用numpy,将numpy.ravel与转置numpy数组一起使用:

df = pd.DataFrame({'A':df.values.T.ravel()})
print (df)
    A
0   1
1   8
2   8
3   8
4   9
5   9
6   7
7   1
8   7
9   1
10  4
11  7
12  3
13  7
14  4
15  4
16  4
17  2
18  7
19  5
20  9
21  1
22  2
23  7
24  5
25  1
26  1
27  9
28  2
29  0

答案 1 :(得分:1)

您可以使用reshape执行以下操作:

df = pd.DataFrame(df.values.reshape(-1), columns=['A'])

答案 2 :(得分:1)

也许使用melt

df.melt()
Out[72]: 
   variable  value
0         A      1
1         A      8
2         A      8
3         B      8
4         B      9
5         B      9
6         C      7
7         C      1
8         C      7
9         D      1
10        D      4
11        D      7
12        E      3
13        E      7
14        E      4
15        F      4
16        F      4
17        F      2
18        G      7
19        G      5
20        G      9
21        H      1
22        H      2
23        H      7
24        I      5
25        I      1
26        I      1
27        J      9
28        J      2
29        J      0