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

Python - Gộp Pandas DataFrame với Right Outer Join


Tương tự Left Outer Join, nhưng dùng how="right" trong merge() để thực hiện Right Outer Join: giữ tất cả hàng của DataFrame bên phải.

Import và tạo hai DataFrame giống bài Left Join.

import pandas as pd
dataFrame1 = pd.DataFrame({
    "Car": ['BMW', 'Lexus', 'Audi', 'Mustang', 'Bentley', 'Jaguar'],
    "Units": [100, 150, 110, 80, 110, 90]
})
dataFrame2 = pd.DataFrame({
    "Car": ['BMW', 'Lexus', 'Tesla', 'Mustang', 'Mercedes', 'Jaguar'],
    "Reg_Price": [7000, 1500, 5000, 8000, 9000, 6000]
})
mergedRes = pd.merge(dataFrame1, dataFrame2, on='Car', how="right")

Ví dụ hoàn chỉnh

import pandas as pd
dataFrame1 = pd.DataFrame({
    "Car": ['BMW', 'Lexus', 'Audi', 'Mustang', 'Bentley', 'Jaguar'],
    "Units": [100, 150, 110, 80, 110, 90]
})
print("DataFrame1 ...\n", dataFrame1)
dataFrame2 = pd.DataFrame({
    "Car": ['BMW', 'Lexus', 'Tesla', 'Mustang', 'Mercedes', 'Jaguar'],
    "Reg_Price": [7000, 1500, 5000, 8000, 9000, 6000]
})
print("\nDataFrame2 ...\n", dataFrame2)
mergedRes = pd.merge(dataFrame1, dataFrame2, on='Car', how="right")
print("\nMerged dataframe with right outer join...\n", mergedRes)

Kết quả

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
Merged dataframe with right outer join...
      Car  Units  Reg_Price
0    BMW  100.0       7000
1  Lexus  150.0       1500
2 Mustang   80.0       8000
3 Jaguar   90.0       6000
4  Tesla    NaN       5000
5 Mercedes   NaN       9000