Nasıl düzeltilir: yalnızca aynı etiketli seri nesneler karşılaştırılabilir
Pandaları kullanırken karşılaşabileceğiniz bir hata:
ValueError : Can only compare identically-labeled DataFrame objects
Bu hata, iki panda DataFrame’i karşılaştırmaya çalıştığınızda ve dizin etiketleri veya sütun etiketleri tam olarak eşleşmediğinde ortaya çıkar.
Aşağıdaki örnekte bu hatanın pratikte nasıl düzeltileceği gösterilmektedir.
Hata nasıl yeniden oluşturulur?
Aşağıdaki iki panda DataFrame’e sahip olduğumuzu varsayalım:
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
Sütun etiketlerinin eşleştiğini ancak dizin etiketlerinin eşleşmediğini unutmayın.
İki DataFrame’i karşılaştırmaya çalışırsak bir hata alırız:
#attempt to compare the DataFrames
df1 = df2
ValueError : Can only compare identically-labeled DataFrame objects
Hata nasıl düzeltilir?
Bu hatayı gidermek için kullanabileceğimiz birkaç yöntem var.
Yöntem 1: DataFrame’leri Karşılaştırın (dizin etiketleri dahil)
Mükemmel bir eşleşme olup olmadıklarını görmek amacıyla iki DataFrame’i karşılaştırmak için aşağıdaki sözdizimini kullanabiliriz (dizin etiketleri dahil):
df1. equals (df2)
False
Bu bize iki DataFrame’in (dizin etiketleri dahil) mükemmel şekilde eşleşmediğini söyler.
Yöntem 2: DataFrame’leri Karşılaştırın (Dizin Etiketlerini Yoksay)
Dizin etiketlerini tamamen göz ardı ederek, mükemmel bir eşleşme olup olmadıklarını görmek amacıyla iki DataFrame’i karşılaştırmak için aşağıdaki sözdizimini kullanabiliriz:
df1. reset_index (drop= True ). equals ( df2.reset_index (drop= True ))
True
Bu bize iki DataFrame’in mükemmel şekilde eşleştiğini söyler (indeks etiketleri göz ardı edilir).
Yöntem 3: DataFrames’i satır satır karşılaştırın
Hangi satır değerlerinin eşleştiğini görmek amacıyla iki DataFrame’i satır satır karşılaştırmak için aşağıdaki sözdizimini kullanabiliriz:
df1. reset_index (drop= True ) == df2. reset_index (drop= True )
assist points
0 True True
1 True True
2 True True
3 True True
Bu, her satırda hangi değerlerin eşleştiğini görmemizi sağlar.
Ek kaynaklar
Aşağıdaki eğitimlerde Python’daki diğer yaygın hataların nasıl düzeltileceği açıklanmaktadır:
Pandas’ta KeyError Nasıl Düzeltilir
Nasıl düzeltilir? ValueError: float NaN int’ye dönüştürülemiyor
Nasıl düzeltilir? ValueError: İşlenenler şekillerle yayınlanamadı