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