Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Python Pandas – Lấy các hàng chung giữa hai DataFrame với concat()

Để 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.