Để tìm các hàng chung giữa hai DataFrame, ta sử dụng hàm concat() kết hợp với groupby() để đếm số lần xuất hiện.
Tạo hai DataFrame
import pandas as pd
dataFrame1 = pd.DataFrame({
"Car": ['BMW', 'Lexus', 'Audi', 'Tesla', 'Bentley', 'Jaguar'],
"Reg_Price": [1000, 1500, 1100, 800, 1100, 900]
})
dataFrame2 = pd.DataFrame({
"Car": ['BMW', 'Lexus', 'Audi', 'Tesla', 'Bentley', 'Jaguar'],
"Reg_Price": [1200, 1500, 1000, 800, 1100, 1000]
})
Tìm hàng chung
# Gộp hai DataFrame
dfRes = pd.concat([dataFrame1, dataFrame2])
# Reset chỉ mục
dfRes = dfRes.reset_index(drop=True)
# Nhóm theo tất cả các cột
dfGroup = dfRes.groupby(list(dfRes.columns))
# Lấy các hàng xuất hiện hơn 1 lần (chung)
res = [k[0] for k in dfGroup.groups.values() if len(k) > 1]
# Hiển thị kết quả
common_rows = dfRes.reindex(res)
print("Các hàng chung...\n", common_rows)
Kết quả
DataFrame1 ...
Car Reg_Price
0 BMW 1000
1 Lexus 1500
2 Audi 1100
3 Tesla 800
4 Bentley 1100
5 Jaguar 900
DataFrame2 ...
Car Reg_Price
0 BMW 1200
1 Lexus 1500
2 Audi 1000
3 Tesla 800
4 Bentley 1100
5 Jaguar 1000
Các hàng chung...
Car Reg_Price
3 Tesla 800
1 Lexus 1500
4 Bentley 1100
Chỉ các hàng có cả giá xe và giá đăng ký trùng khớp giữa hai DataFrame mới được coi là chung.