[英]Pandas dataframe transpose columns into rows
I have a dataframe as follows:我有一个数据框如下:
Variable Params Min_4 Min_3 Min_2 Min_1 Min_0 1_Min 2_Min 3_Min Max_4
Scores Scores 4.0 3.0 2.0 1.0 0.0 1.0 2.0 3.0 4.0
Phys MAP 160.0 130.0 110.0 NaN 70.0 NaN 50.0 NaN 49.0
I want this dataframe to get transposed like below:我希望这个数据框得到如下转置:
Scores Values
4.0 160
3.0 130
2.0 110
1.0 NaN
0.0 70
1.0 NaN
2.0 50
3.0 NaN
4.0 49
I am tryting with df.melt()
approach (shown below).我正在尝试使用
df.melt()
方法(如下所示)。 But with no luck但没有运气
df_MAP_S = df_MAP.melt(id_vars=['Params','Variable'],var_name = 'Scores_lvl',value_name='Scores_Val')
But the above approach is not giving the correct result.但是上述方法没有给出正确的结果。 \
\
If I try using df.set_index().T
as belows如果我尝试使用
df.set_index().T
如下
cols = df_MAP.columns.tolist()
cols = cols[3:]
df_MAP_S = df_MAP.set_index(cols).T
df_n = df_MAP_S.iloc[:-3]
Then this whole df_n
becomes an object
然后整个
df_n
变成一个object
What I am missing here.我在这里缺少什么。
IIUC, just drop the useless columns and transpose: IIUC,只需删除无用的列并转置:
df.drop(columns=['Variable', 'Params']).set_axis(['Scores', 'Values']).T
output:输出:
Scores Values
Min_4 4.0 160.0
Min_3 3.0 130.0
Min_2 2.0 110.0
Min_1 1.0 NaN
Min_0 0.0 70.0
1_Min 1.0 NaN
2_Min 2.0 50.0
3_Min 3.0 NaN
Max_4 4.0 49.0
Transpose is a very basic operation.转置是一个非常基本的操作。 So you can find it in many libraries
所以你可以在很多图书馆找到它
df = pd.DataFrame([[1, 2, 4], [5, 6, 7]], index=['a', 'b'], columns=['c1', 'c2', 'c3'])
df.T
will do the trick会成功的
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.