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

ตรวจสอบว่า DataFrame สองตัวเหมือนกันทุกประการด้วย equals()

แนวคิด

เมธอด DataFrame.equals(other) ตรวจสอบว่า DataFrame สองตัวมีรูปร่าง (shape), ดัชนี (index), คอลัมน์ (columns), และค่าในทุกเซลล์เหมือนกันทุกประการ คืนค่า True หรือ False

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

import pandas as pd

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

# DataFrame ที่สอง (ต่างกันที่คอลัมน์ Reg_Price และค่า Mercedes vs Bentley)
df2 = pd.DataFrame({
    "Car": ['BMW', 'Lexus', 'Audi', 'Mustang', 'Mercedes', 'Jaguar'],
    "Reg_Price": [7000, 1500, 5000, 8000, 9000, 6000]
})

print("DataFrame1:\n", df1)
print("\nDataFrame2:\n", df2)

# ตรวจสอบความเท่ากัน
are_equal = df1.equals(df2)
print(f"\nDataFrame ทั้งสองเท่ากันหรือไม่? {are_equal}")

ผลลัพธ์

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     Audi       5000
3  Mustang       8000
4  Mercedes      9000
5   Jaguar       6000

DataFrame ทั้งสองเท่ากันหรือไม่? False

การตรวจสอบเฉพาะคอลัมน์

สามารถใช้ Series.equals() เปรียบเทียบคอลัมน์เฉพาะ:

# ถ้าทั้งสองมีคอลัมน์ 'Units' เหมือนกัน
df1['Units'].equals(df2['Units'])  # False เพราะ df2 ไม่มีคอลัมน์ Units

ความแตกต่างจาก ==

  • df1 == df2 คืน DataFrame Boolean (element-wise comparison) และ NaN == NaN เป็น False
  • df1.equals(df2) คืนค่า True/False เดียว และถือ NaN ในตำแหน่งเดียวกันว่าเท่ากัน