Pandas 加入行作为新列

Pandas join rows as new columns

我有以下 df:

import pandas as pd
df = pd.DataFrame({'C':[5,4],'P':[2.3,5.6]})

我想按如下方式将第 1 行连接到第 0 行:

我知道重复的列会被分配一个“_1”。

您的实际用例可能更复杂,但对于您的简单示例,您可以执行以下操作。

选项 1 - 使用 unstack()

df.unstack().reset_index().drop('level_1', axis=1).set_index('level_0').T

level_0    C    C    P    P
0        5.0  4.0  2.3  5.6

选项 2 - 使用 concat()

pd.concat([df.iloc[0], df.iloc[1]], axis=0).to_frame().T

     C    P    C    P
0  5.0  2.3  4.0  5.6

选项 3 - 使用 merge()

(df.iloc[0].to_frame().T.reset_index(drop=True)).merge((df.iloc[1].to_frame().T.reset_index(drop=True)), left_index=True, right_index=True)

   C_x  P_x  C_y  P_y
0  5.0  2.3  4.0  5.6

选项 4 - 使用 numpy.reshape()

pd.DataFrame(np.reshape(df.to_numpy(),(1,-1)))

     0    1    2    3
0  5.0  2.3  4.0  5.6