# Lesson 10: pandas - summaries and pivot tables
import pandas as pd
df = pd.read_csv("sales.csv", parse_dates=["date"])
df["amount"] = df["qty"] * df["rate"]
df["month"] = df["date"].dt.strftime("%Y-%m")
print(df.groupby("region")["amount"].sum().sort_values(ascending=False).to_string())
print(df.groupby("product").agg(orders=("order_id", "count"), qty=("qty", "sum"), sales=("amount", "sum")).to_string())
pivot = pd.pivot_table(df, values="amount", index="region", columns="month", aggfunc="sum", fill_value=0, margins=True, margins_name="Total")
print(pivot.to_string())
top = df.groupby("customer")["amount"].sum().nlargest(3)
print("Top 3 customers:", ", ".join(top.index))
