Çözüldü Python Pandas kodu neden çalışmıyor?

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.
Katılım
26 Ocak 2020
Mesajlar
6.332
Makaleler
1
Çözümler
13
Yer
İstanbul


İçinde nan olan satırları filtrelemek istedim fakat Jupyter işlemi bitiremiyor takılır kalıyor "*" işaretinde. Nerede hata yaptım?
 
Son düzenleyen: Moderatör:
Ben şu an resimden bir şey anlamadım. hangi koddan sonra * veriyor? Ekranda * çıkan yerin fotoğrafını atar mısınız?
 
Evet, [ ] kullandığınız için kod x in bir parametre yerine DataFrame olduğunu zannediyor. Peki kod çalıştı mı?
 
Kullandığınız datasetin şu olduğunu tahmin ediyorum:


Anladığım kadarıyla koseli parantez DataFrame yapıyor. O yüzden mi hata?

İlgili kısma bakalım:

Python:
netflix.iloc[0:8806, [x]].isna()

Burada x bir tam sayı ve [x], tek elemanlı bir tam sayı listesi. Peki şununla aradaki fark ne?

Python:
netflix.iloc[0:8806, x].isna()

Burada liste yerine direkt sayı var ve sırf bundan dolayı döndürdükleri fark ediyor. İlki bir DataFrame döndürürken ikincisi bir Series döndürüyor. Dokümandaki örnekle de teyit edebilirsiniz bunu: pandas.DataFrame.iloc — pandas 2.2.2 documentation

Doğru anlamışsınız burayı. Peki bir "hata" mı var? Hem evet hem hayır. Yalnızca işler istemediğiniz şekilde ilerliyor ve aslında sonuç da istemediğiniz gibi geleceği için hata olduğunu söyleyebiliriz. Görünüşe göre | operatörünü DataFrame ile kullanmak tehlikeli, ben de ilk kez görüyorum. İki tarafın da Series olması hayat kurtarıyormuş.

Şu örneği gözlemleyin:

Python:
import pandas as pd

df = pd.DataFrame({"x": range(1000)})

print(df | df["x"]) # Jupyter'de print'siz yazin.

Sonuç şöyle geliyor:



Açıkçası ben tam anlamlandıramadım ama sizde de böyle bir durum yaşandığını söyleyebiliriz. Çok pahalı bir işlem yapmaya çalışıyor, bu yüzden hem hafızayı hem de zamanı fena harcıyor.

Bu arada 0:8806 yerine direkt : yazabilirsiniz tüm satırları dahil etmek için.
 
Cok teşekkürlerler hocam ayrıntılı cevap icin. DataSet kullandigim kurs ile geldi kendim bulmadim. Eğer bu konuda bilginiz varsa birkaç sorum olabilir mi?

çok pahalı bir işlem yapmaya çalışıyor
Büyük ihtimalle öyle oldu. Acemi işi biraz yeni öğrendiğimden. Kursta yoktu kendim deneyeyim olduğu kadar dedim.
 
Son düzenleme:
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…