NoteRun

AttributeError: 'DataFrame' object has no attribute 'ix'

Python hatası · pandas 1.0 ve sonrası

Defter eski bir pandas için yazılmış. .ix pandas 1.0’da (Ocak 2020) kaldırıldı; onu kullanan her satır bu hatayla durur. Series’te de aynı hata çıkar: 'Series' object has no attribute 'ix'.

Neden olur

.ix iki seçme yolunu karıştırıyordu: etiketle, dizin tamsayılardan oluşmuyorsa da konumla. pandas bunları .loc (etiket) ve .iloc (konum) diye ayırdı, .ix'i 0.20’de kullanımdan kalkacak diye işaretledi ve 1.0’da kaldırdı. 2020’den önce yazılmış kurs ve eğitim defterleri onu hâlâ kullanıyor.

Nasıl düzeltilir

.ix satırlarının çoğu satır ve sütun etiketiyle seçer; bunlar için .loc yaz:

Önce

df = pd.read_csv("sales.csv")
city = df.ix[0, "city"]

Sonra

df = pd.read_csv("sales.csv")
city = df.loc[0, "city"]

Dizin tamsayılardan oluşmuyorsa ve satır konumla seçiyorsa (örneğin tarihlerle dizinlenmiş bir tabloda df.ix[:5]), .iloc yaz: df.iloc[:5].

NoteRun’da

NoteRun defteri sen çalıştırmadan önce denetler. .ix olan hücre “Bu hücre çalışmayabilir” diye işaretlenir, düzeltmesi de hemen orada: Düzelt’e ya da bütün defter için Hepsini düzelt’e dokun. Sen dokunana kadar hiçbir şey değişmez, her değişikliği önce görürsün, Geri al defteri eski hâline getirir. Satır konumla seçiyor olabilirse NoteRun onu denetlemeni söyler.

iPhone ya da iPad’inde bu hatayı içeren örnek defteri indir ve NoteRun’da aç.

App Store’dan İndirin

Diğer hatalar