วิธีแก้ไข: สามารถเปรียบเทียบได้เฉพาะวัตถุซีเรียลที่มีป้ายกำกับเหมือนกันเท่านั้น
ข้อผิดพลาดที่คุณอาจพบเมื่อใช้นุ่นคือ:
ValueError : Can only compare identically-labeled DataFrame objects
ข้อผิดพลาดนี้เกิดขึ้นเมื่อคุณพยายามเปรียบเทียบ DataFrames แพนด้าสองตัวและป้ายชื่อดัชนีหรือป้ายชื่อคอลัมน์ไม่ตรงกันอย่างสมบูรณ์
ตัวอย่างต่อไปนี้แสดงวิธีการแก้ไขข้อผิดพลาดนี้ในทางปฏิบัติ
วิธีการทำซ้ำข้อผิดพลาด
สมมติว่าเรามี DataFrames แพนด้าสองตัวต่อไปนี้:
import pandas as pd #define DataFrames df1 = pd. DataFrame ({' points ': [25, 12, 15, 14], ' assists ': [5, 7, 13, 12]}) df2 = pd. DataFrame ({' points ': [25, 12, 15, 14], ' assists ': [5, 7, 13, 12]}, index=[3, 2, 1, 0]) #view DataFrames print (df1) assist points 0 25 5 1 12 7 2 15 13 3 14 12 print (df2) assist points 3 25 5 2 12 7 1 15 13 0 14 12
โปรดทราบว่าป้ายกำกับคอลัมน์ตรงกัน แต่ป้ายกำกับดัชนีไม่ตรงกัน
หากเราพยายามเปรียบเทียบ DataFrames ทั้งสอง เราจะได้รับข้อผิดพลาด:
#attempt to compare the DataFrames
df1 = df2
ValueError : Can only compare identically-labeled DataFrame objects
วิธีการแก้ไขข้อผิดพลาด
มีวิธีการบางอย่างที่เราสามารถใช้เพื่อแก้ไขข้อผิดพลาดนี้
วิธีที่ 1: เปรียบเทียบ DataFrames (รวมถึงป้ายชื่อดัชนี)
เราสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อเปรียบเทียบ DataFrames ทั้งสองเพื่อดูว่าตรงกันหรือไม่ (รวมถึงป้ายกำกับดัชนีด้วย):
df1. equals (df2)
False
สิ่งนี้บอกเราว่า DataFrames ทั้งสองไม่ตรงกันอย่างสมบูรณ์ (รวมถึงป้ายกำกับดัชนีด้วย)
วิธีที่ 2: เปรียบเทียบ DataFrames (ละเว้นป้ายชื่อดัชนี)
เราสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อเปรียบเทียบ DataFrames ทั้งสองเพื่อดูว่าตรงกันหรือไม่ โดยไม่สนใจป้ายกำกับดัชนีเลย:
df1. reset_index (drop= True ). equals ( df2.reset_index (drop= True ))
True
สิ่งนี้บอกเราว่า DataFrames ทั้งสองเข้ากันได้อย่างสมบูรณ์ (โดยไม่สนใจป้ายกำกับดัชนี)
วิธีที่ 3: เปรียบเทียบ DataFrames ทีละแถว
เราสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อเปรียบเทียบ DataFrames ทั้งสองแถวต่อแถวเพื่อดูว่าค่าแถวใดที่ตรงกัน:
df1. reset_index (drop= True ) == df2. reset_index (drop= True )
assist points
0 True True
1 True True
2 True True
3 True True
ซึ่งจะทำให้เราเห็นค่าที่ตรงกันในแต่ละแถว
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีแก้ไขข้อผิดพลาดทั่วไปอื่นๆ ใน Python:
วิธีแก้ไข KeyError ใน Pandas
วิธีแก้ไข: ValueError: ไม่สามารถแปลง float NaN เป็น int
วิธีแก้ไข: ValueError: ตัวถูกดำเนินการไม่สามารถออกอากาศด้วยรูปร่างได้