Site Loader

Selamlar herkese, bu yazıda sizlerle Pandas da Veri Seçme İşlemlerini ele alacağız. Diğer Pandas yazılarına buradan ulaşabilirsiniz. Keyifli okumalar.

Pandas Veri Seçme

Pandas da veri seçme işlemleri en temel ve sık kullanılan işlemlerdir. İlk veriyi ele aldığınızda da veri üzerinde güncelleme yaparken de yapacağınız işlemlerdir.

İlk olarak DataFrame bir görelim.

Tek Sütun Seçme

Şimdi DataFrame içinde district sütununu alalım.

df.district

0       Beylikdüzü
1          Kadıköy
2       Beylikdüzü
3         Esenyurt
4         Beşiktaş
           ...    
6579      Bakırköy
6580       Kadıköy
6581    Beylikdüzü
6582      Ataşehir
6583       Maltepe
Name: district, Length: 6527, dtype: object

Veya başka bir şekilde alabiliriz.

df["district"]

0       Beylikdüzü
1          Kadıköy
2       Beylikdüzü
3         Esenyurt
4         Beşiktaş
           ...    
6579      Bakırköy
6580       Kadıköy
6581    Beylikdüzü
6582      Ataşehir
6583       Maltepe
Name: district, Length: 6527, dtype: object

İkisi arasında ufak bir fark var. Eğer bizim sütun ismi birden fazla kelimeden oluşuyorsa yani sütun ismi arasında boşluk varsa köşeli parantez şeklinde almalıyız aksi takdirde hata verir.

Pandas loc ile Veri Seçme

Peki farklı bir yöntem daha var mı elbette var. Bu sefer loc metodu ile alalım.

df.loc[:,"district"]
0       Beylikdüzü
1          Kadıköy
2       Beylikdüzü
3         Esenyurt
4         Beşiktaş
           ...    
6579      Bakırköy
6580       Kadıköy
6581    Beylikdüzü
6582      Ataşehir
6583       Maltepe
Name: district, Length: 6527, dtype: object

Dikkat ederseniz loc metodu  içinde iki tane alan var “,” sonra ki sütun önceki alan ise satırları verir. Biz burada bütün satırları almak istediğimiz için “:” operatörünü kullandık. Örneğin 5. index’e kadar ki satırları alalım.

df.loc[:5,"district"]

0    Beylikdüzü
1       Kadıköy
2    Beylikdüzü
3      Esenyurt
4      Beşiktaş
5      Beşiktaş
Name: district, dtype: object

Diğer formatlarda ise şu şekilde kullanılıyor.

df["district"][:5]

0    Beylikdüzü
1       Kadıköy
2    Beylikdüzü
3      Esenyurt
4      Beşiktaş
Name: district, dtype: object

Burada dikkat edilmesi gereken nokta loc metodu 5. index dahil olan satırları alırken normal yöntem de 5. index dahil değil.

Şimdi 5 ile 10 arasındaki indeksleri alalım.

df.loc[5:10,"district"]


5     Beşiktaş
6     Beşiktaş
7     Beşiktaş
8     Beşiktaş
9     Bakırköy
10    Bakırköy
Name: district, dtype: object

Çoklu Sütun İşlemleri

Şimdi ise birden fazla sütun alma işlemi yapalım.

df.loc[:5,["district","price"]]

Burada dikkat edilmesi gereken nokta şu biz eğer tek satır alırsak Pandas bize bir seri verir iken birden fazla satırda ise DataFrame verir isterseniz bakalım.

one_column = df["district"][:5]
many_columns = df.loc[:5,["district","price"]]

print("One Column :",type(one_column))
print("Many Columns :",type(many_columns))

One Column : <class 'pandas.core.series.Series'>
Many Columns : <class 'pandas.core.frame.DataFrame'>

Şimdi daha fazla satır alalım fakat hepsini yazmak yerine belli bir kısmı alalım örneğin; district ile price arasındaki tüm sütunları alalım.

df.loc[:5,"district":"price"]

loc  ile biz etiket tabanlı yani sütunların isimleri ile ulaşıyoruz.

Pandas iloc ile Veri Seçimi

İsterseniz sütunların ismi ile değil de indeksleri ile erişebilirsiniz. Bunun için iloc metodunu kullanıyor olacağız. İlk  5 satırı alalım.

df.iloc[:5]

Sadece district sütunu ilk 5 satır alalım.

df.iloc[:5,4]

0    Beylikdüzü
1       Kadıköy
2    Beylikdüzü
3      Esenyurt
4      Beşiktaş
Name: district, dtype: object

Evet gördüğünüz gibi  sütunlara etiket ile değil index ile erişim sağlıyoruz. Başka bir uygulama daha yapalım.

District ve price sütunları 10 ile 15 arasındaki satırları alalım.

df.iloc[10:15,[4,7]]

District ile price arasındaki tüm sütunların ilk 5 satırını alalım.

df.iloc[:5,4:8]

Son bir nokta daha loc ve iloc  metotları sorgu işlemlerinde de  sıkça kullanılır.  Hemen bir örnek yapalım.

df.loc[(df.price >30000000),["district","price"]]

Bir yazının daha sonuna geldik. Eksik veya yanlış bilgi için geri bildirimde bulunursanız çok mutlu olurum. bir sonraki yazıda görüşmek üzere.

Post Author: Cahit ISLEYEN

Data Scientist at @embedica.ai

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir