[英]Pandas dataframe transpose columns into rows
我有一个数据框如下:
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
我希望这个数据框得到如下转置:
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
我正在尝试使用df.melt()
方法(如下所示)。 但没有运气
df_MAP_S = df_MAP.melt(id_vars=['Params','Variable'],var_name = 'Scores_lvl',value_name='Scores_Val')
但是上述方法没有给出正确的结果。 \
如果我尝试使用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]
然后整个df_n
变成一个object
我在这里缺少什么。
IIUC,只需删除无用的列并转置:
df.drop(columns=['Variable', 'Params']).set_axis(['Scores', 'Values']).T
输出:
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
转置是一个非常基本的操作。 所以你可以在很多图书馆找到它
df = pd.DataFrame([[1, 2, 4], [5, 6, 7]], index=['a', 'b'], columns=['c1', 'c2', 'c3'])
df.T
会成功的
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.