
Hệ thống quản trị đào tạo trực tuyến
Trong thực tế, dữ liệu thường nằm ở nhiều bảng khác nhau.
Ví dụ:
| CustomerID | Name |
|---|---|
| 1 | An |
| 2 | Bình |
| 3 | Chi |
| OrderID | CustomerID | Amount |
|---|---|---|
| 101 | 1 | 200 |
| 102 | 2 | 350 |
| 103 | 1 | 150 |
Để phân tích dữ liệu, chúng ta cần kết hợp hai bảng này lại.
Hàm concat() dùng để nối nhiều DataFrame lại với nhau.
Cú pháp:
pd.concat()
Ví dụ:
import pandas as pd
df1 = pd.read_csv("sales_jan.csv")
df2 = pd.read_csv("sales_feb.csv")
df = pd.concat([df1, df2])
Kết quả:
dữ liệu của tháng 1 và tháng 2 được gộp lại thành một bảng.
pd.concat([df1, df2], axis=1)
Ý nghĩa:
ghép thêm cột dữ liệu.
merge() được sử dụng khi cần kết hợp hai bảng theo một khóa chung.
Cú pháp:
pd.merge(left, right, on="column")
Chỉ giữ lại các dòng xuất hiện trong cả hai bảng.
pd.merge(df_customers, df_orders, on="CustomerID", how="inner")
Giữ toàn bộ dữ liệu của bảng bên trái.
pd.merge(df_customers, df_orders, on="CustomerID", how="left")
Giữ toàn bộ dữ liệu của bảng bên phải.
pd.merge(df_customers, df_orders, on="CustomerID", how="right")
Giữ toàn bộ dữ liệu của cả hai bảng.
pd.merge(df_customers, df_orders, on="CustomerID", how="outer")
| CustomerID | Name |
|---|---|
| 1 | An |
| 2 | Bình |
| 3 | Chi |
| OrderID | CustomerID | Amount |
|---|---|---|
| 101 | 1 | 200 |
| 102 | 2 | 350 |
| 103 | 1 | 150 |
df = pd.merge(customers, orders, on="CustomerID")
Kết quả:
| CustomerID | Name | OrderID | Amount |
|---|---|---|---|
| 1 | An | 101 | 200 |
| 1 | An | 103 | 150 |
| 2 | Bình | 102 | 350 |
Trong merge, cột dùng để kết nối dữ liệu gọi là Key.
Ví dụ:
CustomerID
| concat | merge |
|---|---|
| nối bảng | join bảng |
| không cần key | cần key |
| giống append | giống SQL JOIN |
import pandas as pd
customers = pd.read_csv("customers.csv")
orders = pd.read_csv("orders.csv")
pd.concat([customers, orders])
df = pd.merge(customers, orders, on="CustomerID")
pd.merge(customers, orders, on="CustomerID", how="left")