stats.comparison.rank_table(scores, * , method= 'min' , ascending= True )
Rank entries under each metric column.
Converts a per-entry score table (e.g. mean MAE / RMSE / MAPE / MASE per entry) into integer ranks per metric, for concordance analysis (rank_concordance) or a rank-stability chart (spotforecast2.plots.comparison.plot_rank_stability).
Parameters
scores
pd .DataFrame
Frame indexed by entry, one numeric column per metric.
required
method
str
Tie-breaking method forwarded to pd.DataFrame.rank (e.g. "min", "average", "dense"). Defaults to "min".
'min'
ascending
bool
Whether lower scores rank first. Defaults to True.
True
Examples
import pandas as pd
from spotforecast2_safe.stats.comparison import rank_table
scores = pd.DataFrame(
{"mae" : [510.0 , 462.0 , 891.0 ], "rmse" : [640.0 , 655.0 , 1024.0 ]},
index= ["alpha" , "beta" , "gamma" ],
)
ranks = rank_table(scores)
print (ranks.to_string())
assert list (ranks["mae" ]) == [2 , 1 , 3 ]
mae rmse
alpha 2 1
beta 1 2
gamma 3 3