繁体   English   中英

从 dataframe 中的多列创建单列

[英]Create a single column from multiple columns in a dataframe

我有一个 dataframe 有 5 列:M1、M2、M3、M4 和 M5。 每列包含浮点值。 现在我想将 5 列的数据合二为一。

我试过了

cols = list(df.columns)
df_new['Total'] = []
df_new['Total'] = [df_new['Total'].append(df[i], ignore_index=True) for i in cols]

但我得到了这个

在此处输入图像描述

我正在使用 Python 3.8.5 和 Pandas 1.1.2。

这是我的 df 的一部分

M1      M2      M3      M4      M5
0       5       12      20      26
0.5     5.5     12.5    20.5    26.5
1       6       13      21      27
1.5     6.5     13.5    21.5    27.5
2       7       14      22      28
2.5     7.5     14.5    22.5    28.5
10      15      22      30      36
10.5    15.5    22.5    30.5    36.5
11      16      23      31      37
11.5    16.5    23.5    31.5    37.5
12      17      24      32      38
12.5    17.5    24.5    32.5    38.5

这就是我所期待的

0
0.5
1
1.5
2
2.5
10
10.5
11
11.5
12
12.5
5
5.5
6
6.5
7
7.5
15
15.5
16
16.5
17
17.5
12
12.5
13
13.5
14
14.5
22
22.5
23
23.5
24
24.5
20
20.5
21
21.5
22
22.5
30
30.5
31
31.5
32
32.5
26
26.5
27
27.5
28
28.5
36
36.5
37
37.5
38
38.5
import pandas as pd

只需使用concat()方法和列表理解:

result=pd.concat((df[x] for x in df.columns),ignore_index=True)

现在,如果您打印result ,那么您将获得所需的 output

性能( concat()unstack() ):

在此处输入图像描述

您可以 unstack unstack() dataframe:

df = df.unstack().reset_index(drop=True).to_frame('M')

#          M
# 0      0.0
# 1      0.5
# 2      1.0
# ...
# 57    37.5
# 58    38.0
# 59    38.5

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM