result = ( pd.read_csv("sales.csv") # Load data .assign( # Create revenue revenue=lambda df: df["quantity"] * df["price"], # Ensure order_date is datetime order_date=lambda df: pd.to_datetime(df["order_date"]), # Extract month from order_date month=lambda df: df["order_date"].dt.to_period("M") ) # Filter relevant time range .loc[lambda df: df["order_date"] >= "2023-01-01"] # Aggregate revenue .groupby(["category", "month"], as_index=False)["revenue"] .sum() # Sort results .sort_values(by="revenue", ascending=False) )