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

Python Pandas – ตรวจสอบว่า DataFrame สองตัวเท่ากันหรือไม่ด้วย equals()

บทความนี้สาธิตวิธีเปรียบเทียบว่า DataFrame สองตัวมีข้อมูลเหมือนกันทุกประการหรือไม่ โดยใช้เมธอด equals()

ความแตกต่างระหว่าง equals() และ ==

เมธอดพฤติกรรม
df1.equals(df2)คืนค่า True/False เดียว - เปรียบเทียบทุกอย่าง (ค่า, ดัชนี, คอลัมน์, ชนิดข้อมูล)
df1 == df2คืนค่า DataFrame ของ True/False ต่อเซลล์ - ไม่ตรวจสอบดัชนี/คอลัมน์

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

import pandas as pd

# DataFrame แรก
dataFrame1 = pd.DataFrame({
    "Car": ['BMW', 'Lexus', 'Audi', 'Mustang', 'Bentley', 'Jaguar'],
    "Reg_Price": [7000, 1500, 5000, 8000, 9000, 6000]
})

# DataFrame ที่สอง (เหมือนกันทุกประการ)
dataFrame2 = pd.DataFrame({
    "Car": ['BMW', 'Lexus', 'Audi', 'Mustang', 'Bentley', 'Jaguar'],
    "Reg_Price": [7000, 1500, 5000, 8000, 9000, 6000]
})

print("DataFrame1:")
print(dataFrame1)
print("\nDataFrame2:")
print(dataFrame2)

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

ผลลัพธ์

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

กรณีที่คืนค่า False

# ต่างกันที่ค่า
df3 = pd.DataFrame({"A": [1, 2], "B": [3, 4]})
df4 = pd.DataFrame({"A": [1, 2], "B": [3, 5]})  # ค่าแตกต่าง
print(df3.equals(df4))  # False

# ต่างกันที่ดัชนี
df5 = pd.DataFrame({"A": [1, 2]}, index=[0, 1])
df6 = pd.DataFrame({"A": [1, 2]}, index=[10, 20})  # Index ต่างกัน
print(df5.equals(df6))  # False

# ต่างกันที่ชื่อคอลัมน์
df7 = pd.DataFrame({"A": [1, 2]})
df8 = pd.DataFrame({"B": [1, 2]})  # ชื่อคอลัมน์ต่างกัน
print(df7.equals(df8))  # False

เมื่อไหร่ควรใช้ equals()

  • การทดสอบ Unit Test (pytest) เพื่อตรวจสอบผลลัพธ์
  • การตรวจสอบว่าข้อมูลไม่เปลี่ยนแปลงหลังจากการประมวลผล
  • การเปรียบเทียบข้อมูลจากแหล่งที่มาต่างกัน