Veri Bilimi & Veri Manipülasyonu - Pandas
DataFrame Yöntemleri
DataFrame yöntemleri, konusu daha önce görmüş olduğumuz Seri Öznitelikleri ve Seri Yöntemlerinin çoğu özelliklerini kullanabilmemizi sağlar.
Aşağıdaki yöntemlerinde kullanılmak üzere bir tane DataFrame oluşturalım;
import pandas as pd
df = pd.DataFrame({'sehir':['Ankara', 'İstanbul', 'İzmir',"Bursa","Antalya"],
'plaka':["06","34","35","16","07"],
"nufus":[5663000,15460000,4367000,3101833,2548308],
"bolge":["İç Anadolu","Marmara","Ege","Marmara","Akdeniz"]})
df
Çıktı:
1. type(): Verisetin tipini bulmak için kullanılır.
type(df)
Çıktı:
pandas.core.frame.DataFrame
2. dtypes: Sütunların veri tiplerini bulmak için kullanılır.
df.dtypes
Çıktı:
sehir object plaka object nufus int64 bolge object dtype: object
3. index: İndex bilgisi için kullanılır.
df.index
Çıktı:
RangeIndex(start=0, stop=5, step=1)
4. ndim: DataFrame boyutu için kullanılır.
df.ndim
Çıktı:
2
5. shape: Satır ve sütun sayısı için kullanılır.
df.shape
Çıktı:
(5, 4)
6. add_prefix(): Sütun adının başına veri yazmak için kullanılır.
df.add_prefix("sütun_")
Çıktı:
7. add_suffix(): Sütun sonuna veri yazmak için kullanılır.
df.add_suffix("_sütun")
Çıktı:
8. agg() ve apply(): İstenilen sütuna fonksiyon işlemini uygulamak için kullanılır.
#df[["nufus"]].agg(lambda x:x/1000) #alt satırdaki apply ifadesi yerine bu ifade de kullanılabilir.
df[["nufus"]].apply(lambda x:x/1000) #sayı değeri 1000'e bölündü
Çıktı:
#df[["sehir","plaka","bolge"]].agg(lambda x:x+"_") #alt satırdaki apply ifadesi yerine bu ifade de kullanılabilir.
df[["sehir","plaka","bolge"]].apply(lambda x:x+"_") #object türdeki değerlere _ eklendi
Çıktı:
9. argmax() ve argmin(): Max ve Min değerli sütunların index değerlerini bulmak için kullanılır.
#nufus sütununda en yüksek değerli elemanın index değeri
print("Nüfusu en yüksek elemanın index değeri: {}".format(df["nufus"].argmax()))
#nüfus sütununda en düşük değerli elemanın index değeri
print("Nüfusu en düşük elemanın index değeri: {}".format(df["nufus"].argmin()))
Çıktı:
Nüfusu en yüksek elemanın index değeri: 1 Nüfusu en düşük elemanın index değeri: 4
10. argsort(): Sıralı index değeri bulmak için kullanılır.
#sehir adına göre sıralamada index değeri
df["sehir"].argsort()
Çıktı:
0 0 1 4 2 3 3 1 4 2 Name: sehir, dtype: int64
11. astype(): Tür dönüşümü yapmak için kullanılır.
#Sayısal değerde olan nufus değeri object türüne,
#Object türünde olan plaka değeri de sayısal türe dönüştürüldü.
df["nufus"]=df["nufus"].astype("object")
df["plaka"]=df["plaka"].astype("int")
df.info()
#çıkan tabloda Dtype sütununa baktığınızda tiplerin değiştiğini göreceksiniz.
Çıktı:
<class 'pandas.core.frame.DataFrame'> RangeIndex: 5 entries, 0 to 4 Data columns (total 4 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 sehir 5 non-null object 1 plaka 5 non-null int32 2 nufus 5 non-null object 3 bolge 5 non-null object dtypes: int32(1), object(3) memory usage: 268.0+ bytes
12. compare(): İki sütun karşılaştırma için kullanılır.
#not: önceki satır komutunda veri tipleri değiştirilmişti, veri tipleri tekrar eski haline dönüştürülüp devam edildi.
df["nufus"].compare(df["plaka"])
Çıktı:
13. copy(): DataFrame'nin kopyasını almak için kullanılır.
df2=df.copy()
df2
Çıktı:
14. count(): Sütunlardaki satır sayılarını bulmak için kullanılır.
df.count()
Çıktı:
sehir 5 plaka 5 nufus 5 bolge 5 dtype: int64
15. drop(): Değişkenleri kaldırma için kullanılır.
#plaka sütunu kaldırıldı
#diğer satırlarda da kaldırma işleminin görünmesi için;
#df=df.drop("plaka",axis=1) veya df.drop("plaka",axis=1,inplace=True) kodu döndürülmelidir.
df.drop("plaka",axis=1)
Çıktı:
16. isnull(): Değeri "NaN" olan elemanları bulmak için kullanılır.
#değeri boş olan eleman var mı?
df.isnull()
Çıktı:
17. median(), mode(), min(), max(), std(): Orta değeri almak için(median), en çok geçen ifadeyi bulmak için (mode), min ve max değerleri bulmak için(min ve max) ve standart sapma değerini bulmak için(std) kullanılır.
print("nufus median: {}".format(df["nufus"].median()))
print("nufus mode: {}".format(df["nufus"].mean()))
print("nufus min değeri: {}".format(df["nufus"].min()))
print("nufus max değeri: {}".format(df["nufus"].max()))
print("nufus standart sapma değeri: {}".format(df["nufus"].std()))
Çıktı:
nufus median: 4367000.0 nufus mode: 6228028.2 nufus min değeri: 2548308 nufus max değeri: 15460000 nufus standart sapma değeri: 5299184.449582238
18. describe(): DataFrame hakkında istatistiksel bilgi almak için kullanılır. (median(), mode(), min(), max(), std() komutları ile yapılan tüm işlemleri ve daha fazlasını yapar.)
df.describe()
Çıktı:
#Çıktının Transpozesi(T) alınarak da gösterim sağlanabilir.
df.describe().T
Çıktı:
19.rank(): Rank değerini (boyutlarına göre sıralama işlemi) bulmak için kullanılır.
#rank değerleri
df["nufus"].rank()
Çıktı:
0 4.0 1 5.0 2 3.0 3 2.0 4 1.0 Name: nufus, dtype: float64
20. replace(): Eleman değeri değişikliği için kullanılır.
#Elaman değeri Ankara olanları Ank ile değiştir.
df.replace("Ankara","Ank")
Çıktı:
#liste halinde değiştirme, eleman değeri Ankara ve İstanbul olanları Test değeri ile değiştir.
df.replace(["Ankara","İstanbul"],"Test")
Çıktı:
#index değeri 1 olan satır silindi ve index değerleri düzenlendi
df.drop(index=1,axis=0).reset_index(drop=True)
Çıktı:
21. sample(): DataFrame içersinde rastgele satır getirmek için kullanılır. Varsayılan olarak 1 tane değer getirir.
#rasgele 2 satır getir
df.sample(2)
Çıktı:
22. sort_index(): İndex değerine göre büyükten küçüğe sıralama yapmak için kullanılır.
df.sort_index(ascending=False)
Çıktı:
23. sort_values(): Eleman değerine göre sıralama yapmak için kullanılır.
#sehir değerine göre sıralama yapma
df.sort_values(by="sehir")
Çıktı:
#bolge sütununa göre büyükten küçüğe sıralama
df.sort_values("bolge",ascending=False) #by=bolge'de yazılabilir ama sadece bolge yazmak da yeterlidir.
Çıktı:
24. tail(): DataFrame'nin son satırlarını göstermek için kullanılır. Varsayılan olarak 5 satır getirir.
#son iki satır getir
df.tail(2)
Çıktı:
25. unique(): Benzersiz değerleri getirmek için kullanılır.
df["bolge"].unique()
Çıktı:
array(['İç Anadolu', 'Marmara', 'Ege', 'Akdeniz'], dtype=object)
26. value_counts(): Benzersiz değerlerin sayısını görmek için kullanılır.
df["bolge"].value_counts()
Çıktı:
Marmara 2 Ege 1 İç Anadolu 1 Akdeniz 1 Name: bolge, dtype: int64