Pandas GroupBy: Hướng dẫn từ cơ bản đến thực tế
data-analytics
pandas
GroupBy là một trong những thao tác quan trọng nhất trong Pandas. Bài này giải thích cách hoạt động và các use cases thực tế.
GroupBy là gì?
groupby() trong Pandas cho phép bạn chia dữ liệu thành các nhóm, áp dụng một hàm, rồi kết hợp kết quả lại.
Pattern cơ bản: Split → Apply → Combine
import pandas as pd
df = pd.DataFrame({
'region': ['North', 'South', 'North', 'South', 'North'],
'sales': [100, 200, 150, 120, 180],
'month': ['Jan', 'Jan', 'Feb', 'Feb', 'Mar']
})
# Tổng sales theo region
df.groupby('region')['sales'].sum()Các aggregation phổ biến
# Nhiều aggregation cùng lúc
df.groupby('region')['sales'].agg(['sum', 'mean', 'count'])
# Đặt tên cho output columns
df.groupby('region').agg(
total_sales=('sales', 'sum'),
avg_sales=('sales', 'mean'),
num_transactions=('sales', 'count')
)GroupBy với nhiều columns
# Group theo nhiều điều kiện
df.groupby(['region', 'month'])['sales'].sum().reset_index()Transform vs Aggregate
agg()→ thu nhỏ DataFrame (mỗi group → 1 row)transform()→ giữ nguyên shape, broadcast kết quả về từng row
# Thêm cột "% so với tổng của region"
df['region_total'] = df.groupby('region')['sales'].transform('sum')
df['pct_of_region'] = df['sales'] / df['region_total'] * 100Bài tiếp theo: Merge & Join trong Pandas