
Pandas , yüksek performanslı, kullanımı kolay veri yapıları ve veri analiz araçları sağlayan en popüler kütüphanelerden biridir.
Pandas kütüphanesinin import edilmesi
1 |
import pandas as pd #eğer pandası kullanmak istiyorsak kısalma olarak as pd diyerek pd ile çağırmayı yaptık. |
İki veri yapısı vardır.
Pandas Series ( Tek boyutlu Dizi)
DataFrame ( İki boyutlu Dizi)
– Seriler(Series)
Seri, herhangi bir türdeki (integer, string, float, python nesneleri vb.) Verileri tutabilen tek boyutlu etiketli bir dizidir.
Serilerin genel kullanımı :
1 |
my_series = pd.Series(data,index) |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
import pandas as pd # Pandas Series isim = pd.Series(data = ["Ünal","ZAFER"], index = ['ad','soyad']) #ekran çıktısı """ad Ünal soyad ZAFER dtype: object""" #data ve index yazmamız gerekmiyor görmeniz için yazdım isim = pd.Series(["Ünal","ZAFER"], ['ad','soyad']) #yazdırmak için kullan print('veriler:', isim .values) print('indexler:', isim .index) #Çıktısı """veriler: ['Ünal' 'ZAFER'] indexler: Index(['ad', 'soyad'], dtype='object')""" |
istenen veri seri içerisinde var mı kontrol ederek bize true veya false dönüşü yapar
1 2 |
"Ahmet" in isim #False değer dönecektir bu durumda index içinde arar default=index'dir veya isim.index yazabilirsiniz "ZAFER" in isim.values #True olarak döner |
bir index’e ait değere ulaşmak için list mantığındaki gibi index ismi veya index verilir.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
import pandas as pd # Pandas Series market ürünleri market = pd.Series(data = [30, 6, 'Yes', 'No'], index = ['yumurta', 'elma', 'süt', 'ekmek']) print(market[1]) #6 print(market["elma"]) #6 print(market[[1,0]]) print(market[["elma","yumurta"]]) #çıktı """ elma 6 yumurta 30 dtype: object""" |
1 2 3 4 5 6 7 8 9 10 11 |
import pandas as pd s = pd.Series([1,2,3,4,5],index = ['a','b','c','d','e']) print s[:3] #Çıktısı """ a 1 b 2 c 3 dtype: int64""" |
Verilere erişmek için kullanılabilecek metodlar
loc ( label ismi)
iloc ( label sayısal indexi)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
#birden fazla index varsa list şeklinde verilir. print(market.loc[["yumurta","elma"]]) print("\n") #birden fazla index varsa list şeklinde verilir. #yumurta, elma print(market.iloc[[0,1]]) """ yumurta 30 elma 6 dtype: object """ |
Veri İşlemleri (Ekle, Sil)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
import pandas as pd # Pandas Series market ürünleri market = pd.Series(data = [30, 6, 'Yes', 'No'], index = ['yumurta', 'elma', 'süt', 'ekmek']) print(market) #eklemek veya güncellemek için market["ekmek"] ="Yes" #silmek için # Bu şekilde Serinin kendisini değiştirmez yeni bir seri verir. market.drop("elma") print("\n elmayı drop ettikten sonra : \n", market) # Serinin kendisini değiştirmek istersek market.drop("elma",inplace=True) print("\n inplace parametresinden sonra : \n", market) |
Dosya Okuma
Peki listeleri hep elimizle mi gireceğiz tabiki hayır. Biz dosya okuma ile veri alalım.
Cvs dosya okuma işlemi
1 2 3 4 5 6 |
import pandas as pd csv_path="file_name.csv" df = pd.read_csv(csv_path) print(df) #veya df = pd.read_excel('File.xlsx') ile excel gibi birçok dosya formatını okuyabiliriz. |
head() methodu ile ilk 5 değeri listele
1 2 3 4 5 |
df.head() #ilk 5 data df.tail() #son 5 data head=dataFrm.head(<span class="hljs-number">6</span>) #ilk 6 data |
– DataFrame
DataFrame’leri farklı tipteki sütunlara ve satırlara sahip bir SQL tablosu olarak düşünebiliriz. DataFrame’ler veriyi daha kolay işleyebilmemizi sağlar.
DataFrame’lerin genel kullanımı
1 |
dataframe = pd.DataFrame(data,index) |
- Dictionary’lerden, serilerden veya listelerden oluşan bir dictionary,
- 2 boyutlu numpy dizisi,
- Başka bir DataFrame
-Dictionary kullanarak dataframe oluşturma
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
dict = {"country": ["Türkiye", "Rusya", "Hindistan", "Çin", "Afrika"], "capital": ["İstanbul", "Moskova", "Londra", "Paris", "Şili"], "area": [8.516, 17.10, 3.286, 9.597, 1.221], "population": [200.4, 143.5, 1252, 1357, 52.98] } import pandas as pd brics = pd.DataFrame(dict) print(brics) ''' country capital area population 0 Türkiye İstanbul 8.516 200.40 1 Rusya Moskova 17.100 143.50 2 Hindistan Londra 3.286 1252.00 3 Çin Paris 9.597 1357.00 4 Afrika Şili 1.221 52.98 ''' #Bu durumda indexler otomatik sayı atanır. İndex değiştirmek için brics.index = ["Zero", "One", "Two", "Three", "Four"] print(brics) ''' country capital area population Zero Türkiye İstanbul 8.516 200.40 One Rusya Moskova 17.100 143.50 Two Hindistan Londra 3.286 1252.00 Three Çin Paris 9.597 1357.00 Four Afrika Şili 1.221 52.98 ''' |
mesela yukarıdaki değerlerden birini göstermek istersek
1 2 3 4 5 6 7 8 |
# Print Series - country datalarını gösterir seri olarak print(brics['country']) # Print DataFrame - country datalarını gösterir frame olarak print(brics[['country']]) # Print out DataFrame - capital,country ve population datalarının tümünü gösterir yani başlangıç ve bitişi girdik getirdi print(brics[['capital', 'population']]) |
Satırları göstermek
1 2 3 4 5 6 7 |
#0-4 satır aralığını gösterir 4 dahil değil print(brics[0:4]) # 2. satırdan başlar 4. satıra kadar olan verirleri gösterir. 4 dahil değildir print(brics[2:4]) #eğer string satır var ise string olarak da çağırabilirsiniz. |
Not:String index ile yazdığınızda dahildir, rakamsal olarak son değer dahil değildir.
Aynı şekilde loc, iloc işlemleri bunda da geçerlidir.
loc() : Sütun isimlerini kullanarak verilere erişmenin mümkün olduğu yöntemdir.
iloc() : Sütun index veya index aralıklarını kullanarak verilere erişmenin mümkün olduğu yöntemdir.
Slicing işlemi
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
brics.iloc[0:2,0:2] ''' country capital 0 Türkiye İstanbul 1 Rusya Moskova ''' brics.loc[0:2,"capital":"area"] ''' capital area 0 İstanbul 8.516 1 Moskova 17.100 2 Londra 3.286 ''' |
Matematiksel İşlemlerde eğer diyerek sınırlama yaparsak bize True False değerleri gelecek. bunların true olan değerlerine ulaşmak için dataframe içine alıyoruz.
1 2 3 4 5 6 7 8 9 |
brics["area"]>10 ''' 0 False 1 True 2 False 3 False 4 False Name: area, dtype: bool ''' |
1 2 3 4 5 |
brics[brics["area"]>10] ''' country capital area population 1 Rusya Moskova 17.1 143.5 ''' |
1 2 3 4 5 6 |
#yapılan filtreleri birleştirmek filter1=brics["area"]>10 filter2=brics["area"]<15 print(brics[filter1&filter2] |
head() methodu ile ilk 5 değeri listele
1 2 3 4 5 |
df.head() #ilk 5 data df.tail() #son 5 data head=dataFrm.head(<span class="hljs-number">6</span>) #ilk 6 data |
info() methodu
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
print(df.columns) #frame sütun larını getirir #Çıktı: Index(['isim', 'yas', 'maas'], dtype='object') print(df.info()) ## data hakkında istatiksel bilgi verir """ Çıktı : Index(['isim', 'yas', 'maas'], dtype='object') <class 'pandas.core.frame.DataFrame'> RangeIndex: 6 entries, 0 to 5 Data columns (total 3 columns): isim 6 non-null object yas 6 non-null int64 maas 6 non-null int64 dtypes: int64(2), object(1) memory usage: 224.0+ bytes """ |
descripe fonksiyonu ile nümerik olan veriler analiz edilebilir. Aşağıdaki örnekte görebileceğiniz gibi isim hariç yaş ve maaş için minumum ve maximum verileri, medyan değerlerini bulabiliriz. İsim string bir veri olduğu için işlem yapılamaz.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
print(dataFrm.describe()) """ Çıktı : yas maas count 15.000000 6.000000 mean 44.444444 400.000000 std 11.639015 940.276555 min 76.000000 2560.000000 25% 28.500000 850.000000 50% 34.500000 230.000000 75% 61.750000 347.500000 max 35.000000 300.000000 """ |
dropna() ile Nan(Null value) olmayan değerleri getirebilirsiniz
1 |
df.dropna() |
iterrows() ile index ve column değerini atayabilirsiniz
1 2 3 |
for i, j in df.iterrows(): print(i, j) print() |
isnull() Boş değer kontrolü yapmak için kullanılır. Boolen değer döndürür.
copy() ile datafrema i başka bir data frame üzerine kopyalayabilirsiniz.
shape() ile dataframe’inizin kaç satır ve kaç sütunu olduğunu öğrenin
ndim() ile dataframe’in boyutunu döndürür. tek boyutlu mu 2 boyutlu mu
Not: Daha birçok method vardır. Ufak bir araştırma ile bulabilirsiniz. Ben sizlere en çok kullanılanları anlatmaya çalıştım. Umarım faydalı olmuştur. Herkese iyi çalışmalar
Bir yanıt bırakın