Hướng dẫn dùng def aggregate python
Groupby Với "groupby " chúng ta đang đề cập đến một quá trình liên quan đến một hoặc nhiều bước sau: (1) Chia dữ liệu thành các nhóm dựa trên một số tiêu chí (2) Áp dụng một số tính toán cho từng nhóm một cách độc lập (3) Kết hợp các kết quả vào một cấu trúc dữ liệu Trong số này, bước phân chia nhóm (1) là đơn giản nhất. Trên thực tế, trong nhiều trường hợp, bạn có thể chia tập dữ liệu thành các nhóm và làm điều gì đó với các nhóm đó. Trong bước (2), mong muốn có thể là một trong những điều sau: Tổng hợp (Aggregation/Reduction): phân tích thống kê trong một nhóm. Ví dụ: Tính sum, mean, std, min, max của nhóm dữ liệu Tính toán số lượng nhóm (size/count) Chuyển đổi (Transformation): thực hiện một số tính toán nhóm cụ thể và trả về một kiểu giống chỉ mục. Vài ví dụ: Chuẩn hoá dữ liệu (zscore) trong nhóm Fill các giá trị NAs bằng một giá trị từ các nhóm. Lọc (Filtration): loại bỏ một số nhóm, tính toán theo nhóm nhằm đánh giá Đúng hay Sai. Vài ví dụ: Loại bỏ dữ liệu thuộc nhóm chỉ với một vài thành viên Lọc dữ liệu dựa trên sum hay mean của nhóm Hoặc là kết hợp của các điều trên: GroupBy sẽ kiểm tra kết quả của các bước và cố gắng trả lại một kết quả hợp lý hợp lý nếu nó không phù hợp với một trong hai loại trên. Bài học gồm: + groupdby + Tổng hợp (Aggregation/Reduction) Cú pháp trong pandas tự nhiên hơn cách làm trong sql. Chẳng hạn trong sql, groupby như sau.
Ví dụ, groupby trong dataframe.
TRICK. Chú ý với kiểu dữ liệu string (categorical data) ở cột A và cột B. Ta cần chuyển A và B về kiểu category type để có được những lợi ích sau: Tốn ít bộ nhớ, tăng tốc các operations đặc biệt là trong groupby().
Ví dụ, groupby trong Series
Theo mặc định, các keys được sắp xếp trong quá trình groupby. Tuy nhiên bạn có thể không sắp xếp qua phép gán sort = False để tăng tốc:
Ta có thể nhận kết quả của groupby là kiểu dictionary qua thuộc tính “groups”
Duyệt qua toàn bộ grouped
Phương thức get_group() giúp ta có được giá trị của một nhóm. Ví dụ
Aggregation Các phép “aggregation/reduction” có sẵn như sum(), count(),mean() ngoài ra ta có thể tự định nghĩa nhiều “aggregation” riêng cho dữ liệu của mình. Tạo một dataframe để minh họa cho bài học.
Ví dụ sau: so sánh kết quả của “aggregate” sử dụng hàm có sắn np.sum và một hàm tự viết để tính tổng trong một group.
Một ví dụ cho việc sử dụng custom aggregation.
Trong quá trình “aggregation” ta có thể áp dụng cùng lúc nhiều hàm.
Ta có thể áp dụng từng hàm cho từng cột trong quá trình “aggregation”
Kết luận Trong bài này, bạn đọc đã có thể học được cách xác định và chia dataframe theo các nhóm để tiến hành tổng hợp (Aggregation/Reduction) hoặc phân tích thêm (ví dụ như tính sum, std, min, max ...). Bạn đọc sẽ được học cách chuyển đổi và lọc dữ liệu, bao gồm cách phát hiện các giá trị ngoại vi (outliers) và xử lý các giá trị bị thiếu ở bài tiếp theo. |