Hướng dẫn dùng df.merge python
Pandas có đầy đủ tính năng, hiệu suất cao trong hoạt động in-memory join rất giống với cơ sở dữ liệu quan hệ như SQL. Các phương pháp này thực hiện tốt hơn đáng kể so với các mã nguồn mở khác (như merge.data.frame trong R). Lý do của việc này là thiết kế thuật toán cẩn thận và cách bố trí nội bộ của dữ liệu trong dataframe. Pandas cung cấp một hàm duy nhất cho tất cả các kiểu joining/merging. Cú pháp như sau: pd.merge(left, right, how='inner', on=None, left_on=None, right_on=None, left_index=False, right_index=False, sort=True, suffixes=('_x', '_y'), copy=True, indicator=False) Giải thích ‘how: Nếu bạn đã quen với joining trong SQL thì bảng sau cho ta một so sánh giữa joining trong pandas và SQL. Mọi người có thể tham khảo thêm sự so sánh này tại trang web Chúng ta cùng đi vào ví dụ cụ thể sẽ dễ hiểu hơn. Ta có hai bảng dữ liệu bên trái, sau khi merge sẽ cho bảng cuối cùng bên phải.
Cụ thể hình dạng left, right như sau và mặc định how=”inner”
Kết quả của phép join với “how” = ‘left’.
Giải thích về suffixes: Ý nghĩa của suffixes được giải thích qua ví dụ sau: Trường hợp hai bảng có tên cột giống nhau khi joining (chú ý tên cột giống nhau, không phải tên key giống nhau). Từ khóa suffixes sẽ giúp phân biệt cột giống nhau đến từ dataframe nào bằng cách cho thêm hậu tố vào tên cột.
Giải thích về indicator: Ý nghĩa của indicator được giải thích qua ví dụ sau. Bạn có thể so sánh với indicator=False và True qua hai đoạn mã bên dưới. Như vậy indicator giúp chỉ rõ hàng đó đến từ dataframe nào.
Joining on index
Với ví dụ phía trên tương đương lệnh sau khi dùng merge:
Hình dạng của left và right sẽ như sau:
Ví dụ tiếp theo cho trường hợp multikey, được truyền đến dataframe có MultiIndex
Kết quả được trình bầy trong hình sau:
Kết quả:
Ta sẽ truyển về phéo join cơ bản trên key.
Chuyển ba cột “key”,’X’,’Y’ làm index qua phương thức đã học set_index(). |