DataFrame Nedir Ne İşe Yarar?

DataFrame Nedir Ne İşe Yarar?

Makine Öğrenmesi serimizin önceki yazısında OneHotEncoder , LabelEncoder , Kategorik ve Sayısal Verileri anlattık. Verilerimiz yenillenmiş oldu. Bu verileri birleştirme işlemleri yapmak için pandas kütüphanesinin DataFrame fonksiyonu kullanacağız.Önceki 2 yazım da 2 farkli veriler ile oynamıştık.Şimdi önümüzde ilk yazımızdaki veri olacak. Şimdi neler yaptık bir  tekrar edelim. Keyifli Okumalar..

 

Yeni Verimiz :

 

ulke,boy,kilo,yas,cinsiyet
tr,130,30,10,e
tr,190,80,25,e
tr,175,90,35,e
us,160,54,39,k
us,162,52,41,k
us,167,62,55,k
fr,159,65,29,k
fr,164,66,32,k
fr,166,56,42,k

 

Bu verilerle OneHotEncoder ve Label Encoder işlemlerini yapacağız. Bu kavramlara yabancı olan veya daha iyi anlamak isteyen arkadaşlar için önceki yazımın linkini alt kısma koyacağım.

 

 

Şimdi bu konuları anlatmayacağım tekrar sadace veriler üzerinden bakacaksınız ve bende neyin ne olduğunu hatırlatacağım.

 

from sklearn.preprocessing import LabelEncoder
le = LabelEncoder()
ulke[:,0] = le.fit_transform(ulke[:,0])

from sklearn.preprocessing import OneHotEncoder
ohe = OneHotEncoder(categorical_features='all')
ulke=ohe.fit_transform(ulke).toarray()

 

Çıktıları :

 

[1]
[1]
[1]
[0]
[0]
[0]
[2]
[2]
[2]

[0. 1. 0.]
[0. 1. 0.]
[0. 1. 0.]
[1. 0. 0.]
[1. 0. 0.]
[1. 0. 0.]
[0. 0. 1.]
[0. 0. 1.]
[0. 0. 1.]

 

Bundan sonra anlatmaya gerek yoktur diye düşünüyorum :) Bu verileri birleştirmeyi öğrenelim.Hepsini tek kod bloklarında anlatmak istiyorum. Uzun uzun yazmak yerine bilip diğer derslere geçmeniz daha faydalı olacaktır. Zaten kısa bir şey. 

 

sonuc = pd.DataFrame(data = ulke, index = range(9), columns= ["Fransa","Türkiye","Amerika"])
print(sonuc)

sonuc2 = pd.DataFrame(data = yas, index = range(9), columns= ["Boy","Kilo","Yaş"])
print(sonuc2)

cinsiyet = veriler.iloc[:,-1:].values  # Özellikle cinsiyet'i bu şekilde bırakıyoruz. Diğer yazıda daha rahat anlayacaksınız.
print(cinsiyet)

s = pd.concat([sonuc,sonuc2], axis = 1)
print(s)

 

Elimizde 4 tane print olduğunu unutmayın. Şimdi bunların ne anlama geldiğini anlayalım.Anlatmadan önce sizlere bu konuda tavsiyede bulunmak istiyorum.Ben çalışırken spyder kullanıyorum. Spyder birçok açıdan çok güzel. Burada biz print ederken kodlar görüyoruz fakat spyder ile bunnları tablo şeklinde görebilirsiniz. Şuan yaşadığım teknik bir sıkıntıdan dolayı , bilgisayarımdan buraya resim gönderemiyorum fakat mutlaka deneyin. Devam edellim :)

Biz DataFrame fonksiyonu verileri birleştirmek için kullanıyoruz demiştik. İlk kodumuz da ulke verilerini ikinci kod da ise , yaş verilerini aldık.Yani datanın karşına yazdığımız şey , bizim işlem yapmak istediğimiz veridir.Range veri bilimine giriş ve github üzerindeki defter de anlattım.Onlara erişmek isterseniz linkleri alt kısma bırakacağım.

 

 

 

Range fonksiyonu sıralama yapmak için kullandığımız bir fonksiyondur.Onu atadığımız değer ise sütün sayıların toplamıdır.Bizim elimizde 0,1,2,3..8 yani toplam 9 tane verimiz vardır. Bu yüzden 9 sayısını yazıyoruz. Columuns ise adlandırmak için kullanıyoruz. Spyder üzerindeki tablolar ile daha iyi anlarsınız. Mutlaka bakmanızı isterim. Ben kod şeklinde atacağım. Hiçbir fark yok. 

 

Not : 4 tane print yazdık ve 4 tane çıktı olacaktır. 

 

Fransa  Türkiye  Amerika
0     0.0      1.0      0.0
1     0.0      1.0      0.0
2     0.0      1.0      0.0
3     0.0      0.0      1.0
4     0.0      0.0      1.0
5     0.0      0.0      1.0
6     1.0      0.0      0.0
7     1.0      0.0      0.0
8     1.0      0.0      0.0
   Boy  Kilo  Yaş
0  130    30   10
1  190    80   25
2  175    90   35
3  160    54   39
4  162    52   41
5  167    62   55
6  159    65   29
7  164    66   32
8  166    56   42
['e']
['e']
['e']
['k']
['k']
['k']
['k']
['k']
['k']
   Fransa  Türkiye  Amerika  Boy  Kilo  Yaş
0     0.0      1.0      0.0  130    30   10
1     0.0      1.0      0.0  190    80   25
2     0.0      1.0      0.0  175    90   35
3     0.0      0.0      1.0  160    54   39
4     0.0      0.0      1.0  162    52   41
5     0.0      0.0      1.0  167    62   55
6     1.0      0.0      0.0  159    65   29
7     1.0      0.0      0.0  164    66   32
8     1.0      0.0      0.0  166    56   42

 

Not : Cinsiyet verisiyle oynamadık sadace onu bir değişkene atadık. O yüzden böyle.

Şimdi verileri tek bir değişkende toplayalım.Sonrada yazımız sonuna gelelim.

 

s = pd.concat([sonuc,sonuc2], axis = 1)
print(s)

 

Anladığınız üzere concot komudu ise toplama işlemi yapmaya yarıyor. Axis ne olduğunu önceki yazılardan bahsettim. Kısacası : İşlemlerimizin satır da olmasını istersek axis = 0 diyoruz.Sütun olmasını istersek axis = 1 yapıyoruz.Cinsiyet verisinide toplama yapabiliriz.Ben gerek duymadığım için yapmadım sizler yapabilirsiniz.

 

Okuduğunuz için Teşekkür Ederim..