İç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:
Alttaki for dongusu hocam.Ben şu an resimden bir şey anlamadım. hangi koddan sonra * veriyor? Ekranda * çıkan yerin fotoğrafını atar mısınız?
Anladığım kadarıyla koseli parantez DataFrame yapıyor. O yüzden mi hata?[x] in köşeli parantez ini kaldırıp tekrar deneyin.
netflix.iloc[0:8806,x].isna()
Evet, [ ] kullandığınız için kod x in bir parametre yerine DataFrame olduğunu zannediyor. Peki kod çalıştı mı?
Anladığım kadarıyla koseli parantez DataFrame yapıyor. O yüzden mi hata?
netflix.iloc[0:8806, [x]].isna()
x
bir tam sayı ve [x]
, tek elemanlı bir tam sayı listesi. Peki şununla aradaki fark ne?netflix.iloc[0:8806, x].isna()
|
operatörünü DataFrame ile kullanmak tehlikeli, ben de ilk kez görüyorum. İki tarafın da Series olması hayat kurtarıyormuş.import pandas as pd
df = pd.DataFrame({"x": range(1000)})
print(df | df["x"]) # Jupyter'de print'siz yazin.
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?Kullandığınız datasetin şu olduğunu tahmin ediyorum:
![]()
Netflix-Python-Project/Netflix_Raw_Dataset.csv at main · ElenaD25/Netflix-Python-Project
Data cleaning & EDA. Contribute to ElenaD25/Netflix-Python-Project development by creating an account on GitHub.github.com
İlgili kısma bakalım:
Python:netflix.iloc[0:8806, [x]].isna()
Buradax
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:
Eki Görüntüle 2278277
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 arada0:8806
yerine direkt:
yazabilirsiniz tüm satırları dahil etmek için.
Büyük ihtimalle öyle oldu. Acemi işi biraz yeni öğrendiğimden. Kursta yoktu kendim deneyeyim olduğu kadar dedim.çok pahalı bir işlem yapmaya çalışıyor
Bu sitenin çalışmasını sağlamak için gerekli çerezleri ve deneyiminizi iyileştirmek için isteğe bağlı çerezleri kullanıyoruz.