in chartify/_core/plot.py [0:0]
def _sort_categories_by_value(source, categorical_columns, categorical_order_ascending):
# Recursively sort values within each level of the index.
row_totals = source.sum(axis=1, numeric_only=True)
row_totals.name = "sum"
old_index = row_totals.index
row_totals = row_totals.reset_index()
row_totals.columns = ["_%s" % col for col in row_totals.columns]
row_totals.index = old_index
hierarchical_sort_cols = categorical_columns[:]
for i, _ in enumerate(hierarchical_sort_cols):
row_totals["level_%s" % i] = row_totals.groupby(hierarchical_sort_cols[: i + 1])["_sum"].transform("sum")
row_totals = row_totals.sort_values(
by=["level_%s" % i for i, _ in enumerate(hierarchical_sort_cols)],
ascending=categorical_order_ascending,
)
return source.reindex(row_totals.index)