import pandas as pd row_count = 0 amount_total = 0 region_parts = [] with pd.read_csv( "orders.csv", usecols=["region", "amount"], dtype={"region": "string", "amount": "int64"}, chunksize=3, ) as reader: for chunk_number, chunk in enumerate(reader, start=1): chunk_amount = chunk["amount"].sum() row_count += len(chunk) amount_total += chunk_amount region_parts.append(chunk.groupby("region")["amount"].sum()) print(f"chunk {chunk_number}: rows={len(chunk)} amount={chunk_amount}") region_totals = pd.concat(region_parts).groupby(level=0).sum().sort_index() print(f"rows processed={row_count}") print(f"amount total={amount_total}") print("region totals:") print(region_totals.to_string())