Dataframe yapılarının Serilerden farkı satır ve sütunlardan oluşmasıdır.
Daha karmaşık hali olarak da tanımlanabilir.
Aşağıdaki kodlar Jupyter Notebook üzerinden çalıştırılmaktadır.
Bu bölümde filtreleme, isin(), isnull(), notnull(), between(), duplicated(), drop_duplicates(), unique(), set_index(), loc[ ] ve iloc[ ] metodlarını örnekler üzerinde inceleyeceğiz.
filtreleme, isin(), isnull() ve notnull() metodları¶
import pandas as pd # her zamanki gibi öncelikle kullanacağımız pandas kütüphanesini import ediyoruz.
pd.read_csv("millitakim.csv") # Gördüğününz gibi masaüstündeki bir klasörde yer alan bir csv dosyasını okumaya çalıştığımızda
# bu şekilde bir hata veriyor. Çünkü pandas csv dosyamızın yolunu bulamıyor.
import os # os metodunu kullanmak için önce import etmemiz lazım
os.chdir("C:/Users/E-A-S/Desktop/pandas-kaynak") # Yukarıdaki hatanın olmasının sebebi program os metodu içinde tanımlanan dosya yollarına(path) bakar
#os'nin chdir fonksiyonu sayesinde o yolların içine yeni bir yol daha eklemiş oluruz. Böylelikle artık program dosya arayacağı
#zaman bu dizine de bakar.
takımlar=pd.read_csv("millitakim.csv") # Gördüğünüz gibi artık masaüstündeki bir klasörde olan bir csv dosyasını okuyabiliyoruz.
takımlar
takımlar("Takım") =="Fenerbahçe" # bu hatanın sebebi sütun yapıları işlem yapıldığında () parantez değil [] parantez kullanılması gerekliliğindendir.
takımlar["Takım"] =="Fenerbahçe" # takım sütununun Fenerbahçe olmasının True ve Faltse olararak değerlendirilmesi
fenerliler=takımlar["Takım"] =="Fenerbahçe" # Fenerbahçe olup olmamasına göre Takım sütunu fenerliler tablosuna atılmaktadır.
takımlar[fenerliler] # satede fenerli olanlar gösterilmektedir.
ön=takımlar["Görev"] == "önlibero" # görev sütunu önlibero olanlar ön değişkenine atılmıştır.
takımlar[fenerliler & ön] # &(ve) bağlacı ile önlibero ve fenerli olanları filtreliyoruz.
yaş=takımlar["Yaş"]>25 # 25 yaş üctü olanları filtrelerip değişkene atıyoruz.
takımlar[yaş] # 25 yaş üstü olanları gösteriyoruz.
takımlar[yaş|ön] # veya başlacı ile filtreleme yapmak. Yaşı 25 ten büyük veya önlibero olanlar
takımlar[yaş&ön|fenerliler] # 3 kritere göre filtreleme yapılmaktadır.
takımlar["Takım"].isin(["Fenerbahçe","Kayseri"]) # takımların içind fenerbahçe ve kayseri olanları boolen olaran geri döndürmektedir.
m=takımlar["Takım"].isin(["Fenerbahçe","Kayseri"])
takımlar[m] # # takımların içind fenerbahçe ve kayseri olanları boolen olaran geri döndürmektedir.
takımlar["Gol"].isnull() # Gol sütununu null olup olmamasına göre True False olarak geri döndürmek için kullanılır.
golnull=takımlar["Gol"].isnull() # isnull komutunu notnull olarak değiştirirsek tam tersi işlem sağlamış olacağız
takımlar[golnull] # Belli bir sütunun sadece null (NaN) olan değerlerini göstermek için kullanılır.
Dataframe- between(), duplicated(), drop_duplicates() ve unique() Metodları¶
takımlar=pd.read_csv("millitakim.csv")
takımlar["Milyon Euro"] =takımlar["Milyon Euro"].astype("float") # belli bir sütunun tipini değiştirmek. Biz floata çevirdik.
takımlar
yaş=takımlar["Yaş"].between(20,25) # 20-25 yaş aralığını bir değişkene atadık.
takımlar[yaş] # belli bir araılık için birr sütun değerlerine göre filtreleme
me=takımlar["Milyon Euro"].between(5,20) # bu metod hem alt sınırı hem üst sınırı alır
takımlar[me] # 5-20 aralığında milyon euro sütunu için filtreleme yaptık
takımlar["Görev"] # belli bir sütunda aynı olan bir sürü değer olabilir burdaki gibi. Örneğin kaleci 3 defa geçmektedir.
aa=takımlar["Görev"].duplicated() # bu komut aynı olanları buluyor. duplicated() shift+tab tuşlarına basarsanız keep='first'
takımlar[aa] # diye bir parametre olduğu görülür. Bu aynı olanların sadece ilkini atmaya yarar.
# Az önce 3 tane kaleci vardı. İlk karşılaşılan kaleci satırı kaldırıldı ve 2 tane kaldı.
# keep='last' yaparsak bu seferde tekrar edenlerden son satırı siler.
takımlar.drop_duplicates(subset="Görev") # bu metod sayesinde tekrar eden satırların default olarak sadece ilki alınır.
# keep='first' parametresi seçenekleri ile ilk son vb sıralamalardaki değerde alınabilir
takımlar["Görev"].unique() # belli bir sütunun kaç farklı değeri olduğunu gösteriyor.
len(takımlar["Görev"].unique()) #metodu sayesinde kaç farklı değer olduğu da bulunulabilir.
#takımlar["Görev"].nunique() satıtırıda aynı işlevi görür.
Dataframe- set_index(), loc[ ] ve iloc[ ] Metodları¶
takımlar=pd.read_csv("millitakim.csv") # dosyamızı tekrer yükledik.
takımlar
takımlar.set_index("İsim") # index sütununu istediğimiz sütun yapabiliyoruz. Aslında read_csv metodununda index_col
# parametresi yardımı ile de istediğimiz sütun index yapılabilir
takımlar.set_index("İsim",inplace=True) # aşağıdaki hata bu satırın iki defa çalıştırılmasından kaynaklanmaktadır. Program bu işlem zaten yapılmış diyor :)
takımlar
takımlar.set_index("İsim",inplace=True) # inplace yardımıyla bu işlemi kalıcı hale getirdik.
takımlar
takımlar.reset_index(inplace=True) # indexi default hale getirip az önceki set_index işlemini iptal etmiş olduk. İnplace=True yardımıyla kalıcı hale getirdik
takımlar
takımlar=pd.read_csv("millitakim",index_col="Numara") # bu hatanın nedeni dosyamızın uzantısını yazmamış olmamızdır. millitakim.csv yazarsak çözüm bulunmuşş olur.
takımlar=pd.read_csv("millitakim.csv",index_col="Numara") # read_csv metodunun index_col parametresi sayesinde istediğimiz sütunu index sütunu haline getirebiliriz
takımlar
takımlar.loc[4] # bu metod sayesinde istediğimiz index numarası ile o satırın tüm özelliklerini getirebiliyoruz.
takımlar.loc[4,"Görev"] # bu şekilde istediğimiz satırın istediğimiz özelliğini tek başına da çekebiliyoruz.
takımlar.set_index("İsim",inplace=True) # isim sütununu index sütunu yaptık.
takımlar
takımlar.loc["Zeki Celik":"Mehmet Topal"] # iki index aralığını getirmiş olduk
takımlar.iloc[3] # bu metod loctan farklı olarak hangi sütun index olursa olsun sıralamaya göre index alır.
takımlar.iloc[3,5] # istediğimiz satırın istediğimiz sütundaki değerini numerik olarak belirleyip alabiliyoruz.
# 3. satır 5. sütun verilerini gösteriyoruz burada. Bir üstteki kod bloğunda bu değer görülmektedir.