Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

Python - รวม Pandas DataFrame ด้วย Left Outer Join

การรวม (Merge) DataFrame ใน Pandas ใช้ฟังก์ชัน merge() โดยการตั้งค่าพารามิเตอร์ how="left" จะทำให้เกิด Left Outer Join คือเก็บแถวทั้งหมดจาก DataFrame ซ้าย (Left) และจับคู่กับข้อมูลจาก DataFrame ขวา (Right) หากไม่มีข้อมูลตรงกันจะเป็น NaN

ขั้นตอนการทำงาน

  1. Import pandas
  2. สร้าง DataFrame 2 ตัว ที่มีคอลัมน์ร่วมกัน (เช่น "Car")
  3. ใช้ pd.merge(df1, df2, on='Car', how='left')

ตัวอย่างโค้ด

import pandas as pd

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

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

# Merge with Left Outer Join
mergedRes = pd.merge(dataFrame1, dataFrame2, on='Car', how="left")
print("Merged dataframe with left outer join...")
print(mergedRes)

ผลลัพธ์

Merged dataframe with left outer join...
     Car  Units  Reg_Price
0    BMW    100     7000.0
1  Lexus    150     1500.0
2   Audi    110        NaN
3 Mustang     80     8000.0
4 Bentley    110        NaN
5  Jaguar     90     6000.0

คำอธิบาย

  • DataFrame1 เป็นฝั่ง Left (รถ 6 คัน)
  • DataFrame2 เป็นฝั่ง Right (รถ 6 คัน แต่ต่างคันกันบ้าง)
  • Left Join เก็บรถทั้ง 6 คันจาก df1, ราคาจะ NaN ถ้าไม่มีใน df2 (Audi, Bentley)