[英]Groupby, transpose, or even pivot_table with pandas
我有一個像這樣的數據幀:
Model R2 RMSE Average_CV Destiny
0 Ada Boost 0.5563 125.2569 0.426166 REC
1 Bagging Regressor 0.8363 76.0865 0.582675 REC
2 Random Forest 0.8378 75.7304 0.590683 REC
3 Decision Tree 0.8366 76.0053 0.460394 REC
我怎樣才能得到下面的輸出?
Model Metrica REC
Ada Boost Average_CV 0.426166
R2 0.5563
RMSE 125.2569
Bagging Regressor Average_CV 0.582675
R2 0.8363
RMSE 76.0865
Decision Tree Average_CV 0.590683
R2 0.8366
RMSE 76.0053
Random Forest Average_CV 0.460394
R2 0.8378
RMSE 75.7304
我一直在嘗試分組、轉置甚至交叉表。 但我不知道如何獲得所需的輸出。
輸出中 Metrica 列中的行順序無關緊要。
謝謝
如果命運總是 Rec,你可以做一個簡單的melt
。 然后你可以設置和排序索引以獲得你想要的輸出。
df.melt(id_vars="Model", value_vars=["R2", "RMSE", "Average_CV"], var_name="Metrica")
Model Metrica value
0 Ada_Boost R2 0.556300
1 Bagging_Regressor R2 0.836300
2 Random_Forest R2 0.837800
3 Decision_Tree R2 0.836600
4 Ada_Boost RMSE 125.256900
5 Bagging_Regressor RMSE 76.086500
6 Random_Forest RMSE 75.730400
7 Decision_Tree RMSE 76.005300
8 Ada_Boost Average_CV 0.426166
9 Bagging_Regressor Average_CV 0.582675
10 Random_Forest Average_CV 0.590683
11 Decision_Tree Average_CV 0.460394
通過設置/排序索引:
(df.melt(id_vars="Model", value_vars=["R2", "RMSE", "Average_CV"], var_name="Metrica")
.set_index(["Model", "Metrica"])
.sort_index())
value
Model Metrica
Ada_Boost Average_CV 0.426166
R2 0.556300
RMSE 125.256900
Bagging_Regressor Average_CV 0.582675
R2 0.836300
RMSE 76.086500
Decision_Tree Average_CV 0.460394
R2 0.836600
RMSE 76.005300
Random_Forest Average_CV 0.590683
R2 0.837800
RMSE 75.730400
如果您的命運有多個值,並且您希望每個值都有 1 列,那么您將不得不變得更有趣
(df.melt(id_vars="Model", value_vars=["R2", "RMSE", "Average_CV"], var_name="Metrica")
.merge(df[["Model", "Destiny"]], on="Model")
.pivot_table(index=["Model", "Metrica"], columns="Destiny", values="value")
.rename_axis(None, axis=1)
)
REC
Model Metrica
Ada_Boost Average_CV 0.426166
R2 0.556300
RMSE 125.256900
Bagging_Regressor Average_CV 0.582675
R2 0.836300
RMSE 76.086500
Decision_Tree Average_CV 0.460394
R2 0.836600
RMSE 76.005300
Random_Forest Average_CV 0.590683
R2 0.837800
RMSE 75.730400
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.