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

Python - รวม Pandas DataFrame ด้วย Inner Join


เพื่อรวม Pandas DataFrame ใช้ฟังก์ชัน merge() Inner Join ถูกนำไปใช้กับ DataFrame ทั้งสองโดยตั้งค่าภายใต้พารามิเตอร์ "how" ของ merge() คือ -

how = "inner"

ก่อนอื่น ให้ import ไลบรารี pandas พร้อมอีเลียส -

import pandas as pd

สร้าง DataFrame1 -

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

ตอนนี้ สร้าง DataFrame2 -

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

รวม DataFrame ด้วยคอลัมน์ร่วม "Car" และ "inner" ในพารามิเตอร์ "how" เพื่อ Inner Join -

mergedRes = pd.merge(dataFrame1, dataFrame2, on='Car', how="inner")

ตัวอย่าง

โค้ดต่อไปนี้ -

import pandas as pd
# Create DataFrame1
dataFrame1 = pd.DataFrame(
    {
        "Car": ['BMW', 'Lexus', 'Audi', 'Mustang', 'Bentley', 'Jaguar'],
        "Units": [100, 150, 110, 80, 110, 90]
    }
)
print("DataFrame1 ...\n", dataFrame1)
# Create DataFrame2
dataFrame2 = pd.DataFrame(
    {
        "Car": ['BMW', 'Lexus', 'Tesla', 'Mustang', 'Mercedes', 'Jaguar'],
        "Reg_Price": [7000, 1500, 5000, 8000, 9000, 6000]
    }
)
print("\nDataFrame2 ...\n", dataFrame2)
# merge DataFrames with common column Car and "inner" in "how" parameter implements Inner Join
mergedRes = pd.merge(dataFrame1, dataFrame2, on='Car', how="inner")
print("\nMerged dataframe with inner join...\n", mergedRes)

ผลลัพธ์

จะผลิตผลลัพธ์ดังนี้ -

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 inner join...
    Car  Units  Reg_Price
0   BMW    100       7000
1  Lexus    150       1500
2  Mustang   80       8000
3  Jaguar    90       6000