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

Python Pandas – Tìm sự khác biệt giữa hai DataFrame

Để tìm sự khác biệt giữa hai DataFrame, bạn cần kiểm tra sự bằng nhau của chúng. Cũng nên kiểm tra sự bằng nhau của các cột.

Tạo DataFrame

# 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', 'Audi', 'Mustang', 'Bentley', 'Jaguar'],
    "Units": [100, 150, 110, 80, 110, 90]
})

Kiểm tra sự bằng nhau

Kiểm tra cột cụ thể "Units":

dataFrame2['Units'].equals(dataFrame1['Units'])

Kiểm tra cả hai DataFrame:

dataFrame1.equals(dataFrame2)

Ví dụ hoàn chỉnh

import pandas as pd

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

# Tạo DataFrame2
dataFrame2 = pd.DataFrame({
    "Car": ['BMW', 'Lexus', 'Audi', 'Mustang', 'Bentley', 'Jaguar'],
    "Units": [100, 150, 110, 80, 110, 90]
})
print("\nDataFrame2 ...\n", dataFrame2)

# Kiểm tra cột Units
print("\nCột Units của hai DataFrame có giống nhau? ", dataFrame2['Units'].equals(dataFrame1['Units']))

# Kiểm tra toàn bộ DataFrame
print("\nHai DataFrame có bằng nhau? ", dataFrame1.equals(dataFrame2))

Kết quả đầu ra

DataFrame1 ...
       Car  Units
0      BMW    100
1    Lexus    150
2     Audi    110
3  Mustang     80
4  Bentley    110
5   Jaguar     90

DataFrame2 ...
       Car  Units
0      BMW    100
1    Lexus    150
2     Audi    110
3  Mustang     80
4  Bentley    110
5   Jaguar     90

Cột Units của hai DataFrame có giống nhau? True
Hai DataFrame có bằng nhau? True

Mẹo: Để tìm các hàng khác biệt, có thể dùng df1.compare(df2) (Pandas 1.1+) hoặc pd.concat([df1, df2]).drop_duplicates(keep=False).