如何将熊猫数据框中的几行合并为1行

时间:2020-02-25 12:55:15

标签: python pandas dataframe

我需要将pandas数据框中的多行(最多10行)合并为一行。

例如: 我有这样的数据框

   a  b
0  1  3
1  2  4

转换为

   a_0  b_0  a_1  b_1 
0  1    3    2    4

逐行合并是愚蠢的,但我不知道如何进行。

1 个答案:

答案 0 :(得分:4)

DataFrame.stack用于MultiIndex Series,转换为一行DataFrame并最后展平MultiIndex

df = df.stack().to_frame().T
df.columns = df.columns.map(lambda x: f'{x[1]}_{x[0]}')
print (df)
   a_0  b_0  a_1  b_1
0    1    3    2    4

或者如果所有值都是数字,请将numpy.ravelitertools.product一起使用:

from  itertools import product

c = [f'{x[0]}_{x[1]}' for x in product(df.columns, df.index)]
df = pd.DataFrame([df.to_numpy().ravel()], columns=c)
print (df)
   a_0  a_1  b_0  b_1
0    1    3    2    4