วิธีแก้ไข: สามารถเปรียบเทียบได้เฉพาะวัตถุซีเรียลที่มีป้ายกำกับเหมือนกันเท่านั้น


ข้อผิดพลาดที่คุณอาจพบเมื่อใช้นุ่นคือ:

 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: ตัวถูกดำเนินการไม่สามารถออกอากาศด้วยรูปร่างได้

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *