获取每一行值并在Pandas中创建一列

Sre*_* TP 2 python pandas

我有一个如下所示的数据框

Timestamp              x_1          x_2       x_3         x_4    x_5      x_6
2018-01-31 22:30:00 2.023844    2.477428    1.023026    1.035433    0.530817    0.576471
2018-02-01 00:00:00 0.198297    -0.012164   0.103245    -0.101643   0.087468    -0.096665
2018-02-01 01:30:00 0.130721    0.042116    0.200378    0.166665    0.263809    0.250849
2018-02-01 03:00:00 0.621256    1.130577    0.907597    1.659503    1.161939    1.966579
2018-02-01 04:30:00 1.399033    2.438298    1.521268    2.570770    1.555749    2.583903
Run Code Online (Sandbox Code Playgroud)

我想创建一个新的数据帧,它只包含一个这样的列

  vals
    2.023844
    2.477428    
    1.023026    
    1.035433    
    0.530817    
    0.576471
    0.198297    
    -0.012164   
    0.103245    
    -0.101643   
    0.087468    
    -0.096665
    0.130721    
    0.042116    
    0.200378    
    0.166665    
    0.263809    
    0.250849
Run Code Online (Sandbox Code Playgroud)

我必须获取每一行值(x_1到x_6)并将它们堆叠成一列.

是否有一种简单的方法可以在熊猫中进行,而不是乱搞数组和列表.

jez*_*ael 5

如果第一列不是index:

df = pd.DataFrame({'vals':df.iloc[:, 1:].values.reshape(-1)})
Run Code Online (Sandbox Code Playgroud)

如果第一列是索引:

df = pd.DataFrame({'vals':df.values.reshape(-1)})
Run Code Online (Sandbox Code Playgroud)
print (df)
        vals
0   2.023844
1   2.477428
2   1.023026
3   1.035433
4   0.530817
5   0.576471
6   0.198297
7  -0.012164
8   0.103245
9  -0.101643
10  0.087468
11 -0.096665
12  0.130721
13  0.042116
14  0.200378
15  0.166665
16  0.263809
17  0.250849
18  0.621256
19  1.130577
20  0.907597
21  1.659503
22  1.161939
23  1.966579
24  1.399033
25  2.438298
26  1.521268
27  2.570770
28  1.555749
29  2.583903
Run Code Online (Sandbox Code Playgroud)