如何在python中将行更改为列



我想将我的数据框行转换为列,并取最后一列的最后一个值。

这是我的数据框架

df=pd.DataFrame({'flag_1':[1,2,3,1,2,500],'dd':[1,1,1,7,7,8],'x':[1,1,1,7,7,8]})
print(df)
flag_1  dd  x
0       1   1  1
1       2   1  1
2       3   1  1
3       1   7  7
4       2   7  7
5     500   8  8
df_out:
1 2 3 1 2 500 1 1 1 7 7 8 8

假设您想要一个列表作为输出,您可以屏蔽列表列和堆栈的初始值:

import numpy as np
out = (df
.assign(**{df.columns[-1]: np.r_[[pd.NA]*(len(df)-1),[df.iloc[-1,-1]]]})
.T.stack().to_list()
)

输出:

[1, 2, 3, 1, 2, 500, 1, 1, 1, 7, 7, 8, 8]

对于单行的宽数据帧,使用.to_frame().T代替to_list()(这里使用MultiIndex):

flag_1                  dd                 x
0  1  2  3  4    5  0  1  2  3  4  5  5
0      1  2  3  1  2  500  1  1  1  7  7  8  8