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

Python Pandas – หาแถวที่เหมือนกันระหว่างสอง DataFrame ด้วย merge()


เพื่อหาแถวที่เหมือนกันระหว่างสอง DataFrame ด้วย merge() ใช้พารามิเตอร์ "how" เป็น "inner" เนื่องจากทำงานเหมือน SQL Inner Join และนี่คือสิ่งที่เราต้องการ

มาสร้าง DataFrame1 ด้วยสองคอลัมน์ -

dataFrame1 = pd.DataFrame(
    {
        "Car": ['BMW', 'Lexus', 'Audi', 'Tesla', 'Bentley', 'Jaguar'],
        "Reg_Price": [1000, 1500, 1100, 800, 1100, 900]
    }
)

สร้าง DataFrame2 ด้วยสองคอลัมน์ -

dataFrame2 = pd.DataFrame(
    {
        "Car": ['BMW', 'Lexus', 'Audi', 'Tesla', 'Bentley', 'Jaguar'],
        "Reg_Price": [1200, 1500, 1000, 800, 1100, 1000]
    }
)

มาหาแถวที่เหมือนกัน -

dataFrame1.merge(dataFrame2, how='inner', indicator=False)

ตัวอย่าง

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

import pandas as pd
# Create DataFrame1
dataFrame1 = pd.DataFrame(
    {
        "Car": ['BMW', 'Lexus', 'Audi', 'Tesla', 'Bentley', 'Jaguar'],
        "Reg_Price": [1000, 1500, 1100, 800, 1100, 900]
    }
)
print("DataFrame1 ...\n", dataFrame1)
# Create DataFrame2
dataFrame2 = pd.DataFrame(
    {
        "Car": ['BMW', 'Lexus', 'Audi', 'Tesla', 'Bentley', 'Jaguar'],
        "Reg_Price": [1200, 1500, 1000, 800, 1100, 1000]
    }
)
print("\nDataFrame2 ...\n", dataFrame2)
# finding common rows between two DataFrames
resData = dataFrame1.merge(dataFrame2, how='inner', indicator=False)
print("\nCommon rows between two DataFrames...\n", resData)

ผลลัพธ์

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

DataFrame1 ...
    Car  Reg_Price
0   BMW       1000
1  Lexus      1500
2   Audi       1100
3  Tesla       800
4 Bentley     1100
5  Jaguar      900
DataFrame2 ...
    Car  Reg_Price
0   BMW       1200
1  Lexus      1500
2   Audi       1000
3  Tesla       800
4 Bentley     1100
5  Jaguar      1000
Common rows between two DataFrames...
    Car  Reg_Price
0  Lexus      1500
1  Tesla       800
2 Bentley     1100