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

Python Pandas – Gộp (merge) DataFrame với cột chỉ nguồn (_merge indicator)

Giới thiệu

Khi merge hai DataFrame, tham số indicator=True thêm cột _merge cho biết nguồn của từng hàng: left_only, right_only, hoặc both.

Ví dụ minh họa

import pandas as pd

# DataFrame 1
dataFrame1 = pd.DataFrame({
    "Car": ['BMW', 'Lexus', 'Audi', 'Mustang', 'Bentley', 'Jaguar'],
    "Units": [100, 150, 110, 80, 110, 90]
})
print("DataFrame1 ...\n", dataFrame1)

# DataFrame 2
dataFrame2 = pd.DataFrame({
    "Car": ['BMW', 'Lexus', 'Tesla', 'Mustang', 'Mercedes', 'Jaguar'],
    "Reg_Price": [7000, 1500, 5000, 8000, 9000, 6000]
})
print("\nDataFrame2 ...\n", dataFrame2)

# Merge left join với indicator
mergedRes = pd.merge(dataFrame1, dataFrame2, how="left", indicator=True)
print("\nKết quả merge (có cột _merge):\n", mergedRes)

Kết quả đầu ra

DataFrame1 ...
      Car  Units
0     BMW    100
1   Lexus    150
2    Audi    110
3  Mustang    80
4 Bentley    110
5  Jaguar     90

DataFrame2 ...
      Car  Reg_Price
0     BMW       7000
1   Lexus       1500
2   Tesla       5000
3  Mustang      8000
4 Mercedes      9000
5  Jaguar       6000

Kết quả merge (có cột _merge):
      Car  Units  Reg_Price     _merge
0     BMW    100     7000.0       both
1   Lexus    150     1500.0       both
2    Audi    110        NaN  left_only
3  Mustang    80     8000.0       both
4 Bentley    110        NaN  left_only
5  Jaguar     90     6000.0       both

Giải thích: how='left' giữ tất cả hàng của df1. Cột _merge cho thấy: 'both' (có ở cả hai), 'left_only' (chỉ df1), 'right_only' (chỉ df2).