[英]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.