Dê o seguinte dataframe:
_BETTER _SAME _WORSE ___dataset Metric
0.373802 0.816794 0.568783 Train precision
0.391304 0.865229 0.519324 Train recall
0.382353 0.840314 0.542929 Train f1-score
0.500000 1.000000 0.583333 Val precision
0.333333 1.000000 0.736842 Val recall
0.400000 1.000000 0.651163 Val f1-score
0.000000 0.000000 0.666667 Test precision
0.000000 0.000000 0.500000 Test recall
0.000000 0.000000 0.571429 Test f1-score
gostaria de acrescentar o seguinte:
_BETTER _SAME _WORSE ___dataset Metric
0.373802 0.816794 0.568783 Train precision
0.391304 0.865229 0.519324 Train recall
0.382353 0.840314 0.542929 Train f1-score
0.500000 1.000000 0.583333 Val precision
0.333333 1.000000 0.736842 Val recall
0.400000 1.000000 0.651163 Val f1-score
0.000000 0.000000 0.666667 Test precision
0.000000 0.000000 0.500000 Test recall
0.000000 0.000000 0.571429 Test f1-score
mean_p_b mean_p_s mean_p_w All precision_avg
mean_r_b mean_r_s mean_r_w All recall_avg
mean_f1_b mean_f1_s mean_f1_w All f1_score_avg
onde mean_p_b mean_p_s mean_p_w é obtido pela média da linha de precisão, em relação às três colunas, respectivamente. Da mesma forma, mean_r_b mean_r_s mean_r_w e mean_f1_b mean_f1_s mean_f1_w.
Aplicando cada um separadamente:
df_avg_precision["BETTER"] = (df_train_precision['_BETTER'].values + df_val_precision['_BETTER'].values +
df_test_precision['_BETTER'].values)/3
df_avg_precision["Metric"] = "precision_avg"
df_avg_recall["BETTER"] = (df_train_recall['_BETTER'].values +
df_val_recall['_BETTER'].values + df_test_recall['_BETTER'].values)/3
df_avg_recall["Metric"] = "recall_avg"
df_avg_f1["BETTER"] = (df_train_f1['_BETTER'].values +
df_val_f1['_BETTER'].values + df_test_f1['_BETTER'].values)/3
df_avg_f1["Metric"] = "f1_avg"`
Você pode usar
df.groupby(...).mean(...)
para isso(para manter
f1-score
como última linha necessáriagroupb(..., sort=False)
)Ele fornece
Series
apenas com_BETTER, _SAME, _WORSE
(eMetric
como índice), então ele precisa__dataset
comAll
._avg
emMetric
(neste momento ainda está como índice).DataFrame()
(usandoreset_index()
- ele converte o índiceMetric
para coluna normal).concat
anexá-lo aos dados originais.Código funcional completo com dados de exemplo em formato de texto.
Eu o utilizo
io
apenas para criar objetos do tipo arquivo, para que todos possam simplesmente copiá-lo e executá-lo.Resultado (para
text1
)Resultado (por
text2
exemplo da resposta de @Adeva1)Doutor:
Você pode tentar algo assim:
Entrada (Exemplo)
Saída