Nov-17-2023, 04:54 AM
I was thinking of something like this:
from random import randint, choice import pandas as pd # Make up some data for processing baby_names = pd.DataFrame( [{"Year": year, "Name": choice('ABCD')} for _ in range(100) for year in range(2000, 2005)] ) stats = baby_names.groupby(["Year", "Name"]).agg(Count=("Name", "count")) stats["%"] = 100 * stats["Count"] / stats.groupby("Year")["Count"].transform('sum') stats.sort_values(by=["Year", "%"], ascending=[True, False], inplace=True) print(stats)