Pandas random hakkında

O satırı ve üstündekini birleştirebilirsiniz:

iyi_filmler = df[(df.averageRating > 8) & (df.numVotes > 10_000)]

Burada köşeli parantezlerin içine yazdıklarımız “maske” diye geçiyor. Filtrelemeye olanak sağlıyorlar. Eğer sadece mesela df.averageRating > 8 yazıp yazdırırsanız True ve False'lardan müteşekkil bir Series elde edersiniz. Bu "maske"yi DataFrame üzerinde indeks olarak kullandığımızda size seride True'ya karşılık gelen indekslerin satırlarını filtreleyerek döndürüyor. & operatörünün yaptığı ise iki maskeyi “and” ile bağlamak yani “hem bunu hem de şunu” sağlayanları filtrele diyoruz.

Uyarıyı alma sebebiniz bu iki maskeyi ardı ardına ayrı bir şekilde kullandığınızda ilk maske sonucu düşen indekslerin bazılarının ikinci maskede var olması. Yani veride öyle film(ler) var ki oy sayısı 10_000’den yüksek ama reytingi 8’den yüksek değil. Dolayısıyla filtrelemeyi iki aşamada değil de tek aşamada hallediyoruz zira iki (veya daha fazla) aşama söz konusu olduğunda bir aşamadan sonra gelenin sağlandığı yerler öncekilerin alt kümesi olmayabilir; ama ilki verileri kırptıktan (filtreledikten) sonra diğerinin orijinal indekslere erişimi olmuyor.

Yine de iki aşamada yapmak isterseniz ikinci filtrelemede içeriye halihazırda filtrelenmiş DataFrame'i gönderin:

avg_ratingi_7_den_yuksek_olanlar = df[df.averageRating > 7]

# içerde indekslenen DataFrame'e dikkat - df değil:
ve_toplam_oyu_10_000_den_fazla_olanlar = avg_ratingi_7_den_yuksek_olanlar[avg_ratingi_7_den_yuksek_olanlar.numVotes > 10_000]

Bir de mümkünse kodlarınızı resim olarak değil yazı olarak paylaşmanızı rica ederim Forumda kod paylaşılırken kullanılan yöntemler

1 Beğeni