บทความนี้สาธิตวิธีเปรียบเทียบว่า 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) เพื่อตรวจสอบผลลัพธ์
- การตรวจสอบว่าข้อมูลไม่เปลี่ยนแปลงหลังจากการประมวลผล
- การเปรียบเทียบข้อมูลจากแหล่งที่มาต่างกัน