pandas 列的行到列

pn9klfpd  于 2023-02-07  发布在  其他
关注(0)|答案(2)|浏览(127)

我是否需要使用透视将一行列合并为一列?我有一个数据集,如图所示,但每行中有8个独立的行。我需要使每个单元格成为自己的行。
这是我要开始的一个例子:

d = {'col1':[1,9,17],'col2':[2,10,18],'col3':[3,11,19],'col4':[4,12,20],'col5':[5,13,21],'col6':[6,14,22],'col7':[7,15,23],'col8':[8,16,24]}
import pandas as pd
df = pd.DataFrame(data=d)

然后需要一个新的df,如下所示:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
sgtfey8w

sgtfey8w1#

您可以垂直堆叠 Dataframe :

new_df = pd.DataFrame({'col': df.stack().values})

或者使用底层的 raw 数组(.to_numpy().ravel()/.to_numpy().flatten()):
x一个一个一个一个x一个一个二个一个x一个一个三个一个

a8jjtwal

a8jjtwal2#

您也可以尝试使用melt()

df1=df.melt().drop('variable', axis=1).sort_values('value')

相关问题