Anasayfa / Genel bir bakış / Python ile Makine Öğrenmesine Giriş Pandas Kütüphanesi

Python ile Makine Öğrenmesine Giriş Pandas Kütüphanesi

Merhabalar,

Makine Öğrenmesine Giriş Serisi’nin İlk kütüphanesi Pandas’tan bahsedeceğim bu gün, serinin devamında numpy, matplotlib, scikit-learn vs. gibi kütüphanelerden bahsedip ardından önce basit örneklerden başlayıp daha komplike örnekler ile python’da makine öğrenmesini anlatacağım. Şimdiden İyi Okumalar!

Pandas Nedir?

  • Pandas genelde veri işleme ve temizlemede oldukça efektif şekilde kullanılan, hatta makine öğrenmesi gibi alanlarda oldukça fazla kullanılan bir python modülü
  • Pandas 2 aslında içerisinde 2’ye Ayrılıyor. Seriler ve Veri Çerçeveleri(DataFrame)

Pandas Nasıl Kurulur?

  • Pandas normalde size anaconda ile birlikte yüklü gelir ama yüklü değilse, bilgisayarınızda python path olarak varsa cmd’yi açıp “pip install pandas” veya anaconda varsa ve yüklü değilse anaconda prompter’dan “conda install pandas” yazarak indirebilir ve kullanabilirsiniz.
Output:
0 1
1 7
2 3
3 7
2 3
3 7
4 9
5 10

dtype : int64v

Pandas’ta indexlere değer atama

  • Burada dikkat etmemiz gereken şey serilerde bahsettiğimiz eleman kadar index değeri atamak olacaktır. Eğer bunu fazla veya az yaparsanız valueerror alacaksınız.
Output:
  • Böyle yapmak yerine direkt dict’leri kullanarak hem indexleyip hemde elemanlarınızı içerisinde bulunduran bir seri oluşturabilirsiniz.
Output:

Pandas DataFrame Oluşturma

  • Columns : Başlıklar
  • İndex : Az önce bahsettiğim etiketler
  • Data : Elemanlar
  Output:

Başlık1 Başlık2
İst -0.792252 -0.047696
Ankara 1.852743 0.654519

Başlıktan Sorgu yapmak

  • Burada kullanacağınız şey, elinizdeki verideki her bir başlığı, sutün’u tek başına alıp onu sorgulayabileceğiniz veya sadece ona işlem yapabilmenin ilk adımı olacak
Output:
Input:
Output:
Input:
Output:
  • Burada gördüğünüz gibi, birçok seri bir araya gelerek dataframe’i oluşturuyor.

DataFrame’ye Sutün Eklemek

Output:

Başlık1 Başlık2
İst -0.792252 -0.047696
Ankara 1.852743 0.654519
  • Burada DataFrame’ye kendimiz belirlediğimiz elemanların olduğu bir sutün’u ekleyeceğiz.
Output:

Başlık1 Başlık2 Başlık3
İst -0.792252 -0.047696 -1.031586
Ankara 1.852743 0.654519 1.685737
  • Şimdi ise diğer Sutünların toplamalarını yeni bir sutünda yazdıracağız.

Input:

Output:

Başlık1 Başlık2 Başlık3 Başlık4 Başlık5
İst -0.792252 -0.047696 -1.031586 -0.317169 -2.188703
Ankara 1.852743 0.654519 1.685737 1.440357 5.633356

Kullanmadığınız Sutünları Düşürmek.

  • Bu kısım daha çok feature selection yaparken kullanılıyor. Çoğu zaman verilerde zaman sutün’u düşürülüyor.

Input:

Output:

Başlık1 Başlık2 Başlık3 Başlık4
İst -0.792252 -0.047696 -1.031586 -0.317169
Ankara 1.852743 0.654519 1.685737 1.440357

Input:

Output:

Başlık1 Başlık2 Başlık3 Başlık4 Başlık5
İst -0.792252 -0.047696 -1.031586 -0.317169 -2.188703
Ankara 1.852743 0.654519 1.685737 1.440357 5.633356
  • Baktığınızda değişiklikler ana setimizde yansımamış şekilde sebebi ise düşürme işlemini df değişkeni üzerinde yapmadık.

Input:

Output:

Başlık1 Başlık2 Başlık3 Başlık4
İst -0.792252 -0.047696 -1.031586 -0.317169
Ankara 1.852743 0.654519 1.685737 1.440357

Loc ile DataFrame Listelemek

  • İndex Değerlerine Göre Listelemek

Input:

Output:

Input:

Output:

Input:

Output:

DataFrame Filtreleme

  • Boolean = True/False içeren değerler

Input:

Output:

Başlık1 Başlık2 Başlık3 Başlık4
İst True True False True
Ankara True True True True

Input:

Output:

İndex ve Eleman Değerlerini Değiştirmek.

  • Yeni Elemanlar atarken çok işimize yarayacak

Input:

Output:

Başlık1 Başlık2 Başlık3 Başlık4
İst 1 -0.047696 -1.031586 -0.317169
Ankara 3 0.654519 1.685737 1.440357

Input:

Output:

Başlık2 Başlık3 Başlık4
Başlık1
1 -0.047696 -1.031586 -0.317169
3 0.654519 1.685737 1.440357

Input:

Output:

Başlık1 Başlık2 Başlık3 Başlık4
İst 1 -0.047696 -1.031586 -0.317169
Ankara 3 0.654519 1.685737 1.440357

Input:

Output:

Başlık2 Başlık3 Başlık4
Başlık1
1 -0.047696 -1.031586 -0.317169
3 0.654519 1.685737 1.440357

Kayıp Veriler

  • Bir araştırmadaki en sorunlu ve en önemli kısıma şu anda değineceğiz, kayıp verileri atmadan makine öğrenmesi yapılamaz.

Input:

Input:

Output:

Başlık1 Başlık2 Başlık3
0 1.0 5.0 NaN
1 NaN 7.0 NaN
2 NaN 9.0 8.0
  • Direkt Düşürmek

Input:

Output:

Başlık1 Başlık2 Başlık3

Input:

Output:

Başlık2
0 5.0
1 7.0
2 9.0
  • Alt Eşik Koymak

Input:

Output:

Başlık1 Başlık2 Başlık3
0 1.0 5.0 NaN
2 NaN 9.0 8.0
  • NaN’ları doldurmak (Pek önermiyorum, neden önermediğimi diğer yazılarımda anlatacağım.)

Input:

Output:

Başlık1 Başlık2 Başlık3
0 1.0 5.0 15.0
1 15.0 7.0 15.0
2 15.0 9.0 8.0

Input:

Output:

Input:

DataFrameleri birleştirme Yöntemleri

Input:

Input:

Input:

Output:

A B C
1 A1 B1 C1
2 A2 B2 C2
3 A3 B3 C3
4 A4 B4 C4

Input:

Output:

A B C
5 A5 B5 C5
6 A6 B6 C6
7 A7 B7 C7
8 A8 B8 C8
  • Burada görmeniz gereken detay index sayıları birbirini takip ediyor. Peki ya ben bu dataframeleri birleştirirsem ne elde ederim?

Pd.Concat

  • Concat direkt başlıklar üzerinden veya indexler üzerinden birleştirme yapar

Input:

Output:

A B C
1 A1 B1 C1
2 A2 B2 C2
3 A3 B3 C3
4 A4 B4 C4
5 A5 B5 C5
6 A6 B6 C6
7 A7 B7 C7
8 A8 B8 C8
  • Peki ya Ben bunları başlıkların eşitliğini yok sayarak birleştirirsem ne çıkar?

Input:

Output:

A B C A B C
1 A1 B1 C1 NaN NaN NaN
2 A2 B2 C2 NaN NaN NaN
3 A3 B3 C3 NaN NaN NaN
4 A4 B4 C4 NaN NaN NaN
5 NaN NaN NaN A5 B5 C5
6 NaN NaN NaN A6 B6 C6
7 NaN NaN NaN A7 B7 C7
8 NaN NaN NaN A8 B8 C8

Pd.Merge

  • Merge Az olan değeri referans alıp ona göre birleştirir.

Input:

Input:

Output:

A B anahtar
0 A1 B1 K1
1 A2 B2 K2
2 A3 B3 K3

Input:

Output:

X Y anahtar
0 X1 Y1 K1
1 X2 Y2 K2
2 X3 Y3 K5
3 X4 Y4 K4
  • Ben bu 2 dataframe’i anahtar başlığı altında birleştirmek istersem bunda merge’i kullanabilirim.

Input:

Output:

A B anahtar X Y
0 A1 B1 K1 X1 Y1
1 A2 B2 K2 X2 Y2
  • Farkettiyseniz merge’de az olan değere göre bir eleman atandı NaN’sız bir şekilde elime geçti. Peki ya az çok farketmeden direkt birleştirmek isteseydim ne yapabilirdim?

Join

  • Burada bilinmesi gereken şey indexler join edilen dataframeye göre referans alınır.

Input:

Input:

Output:

A B X Y
0 A1 B1 X1 Y1
1 A2 B2 X2 Y2
2 A3 B3 X3 Y3

Input:

Output:

X Y A B
0 X1 Y1 A1 B1
1 X2 Y2 A2 B2
2 X3 Y3 A3 B3
3 X4 Y4 NaN NaN

Gerçek Datalar İle oynama Zamanı

  • Ben burada data olarak kaggle’dan aldığım Avakado satış fiyatlarını kullanacağım.

Dataset’e Tıklayarak ulaşabilirsiniz.

https://www.kaggle.com/neuromusic/avocado-prices

  • kodumuz pd.read_csv(‘datasetdizini’, sep=”dataset’in nasıl ayrıldığı*”)
  • ayrıldığı* = çoğu dataset bu kısımda default olarak “,” kullansada bazen “;” olabiliyor.

URL’den Dataset Çekme

Input:

Output:

Unnamed: 0 Date AveragePrice Total Volume 4046 4225 4770 Total Bags Small Bags Large Bags XLarge Bags type year region
0 0 2015-12-27 1.33 64236.62 1036.74 54454.85 48.16 8696.87 8603.62 93.25 0.0 conventional 2015 Albany
1 1 2015-12-20 1.35 54876.98 674.28 44638.81 58.33 9505.56 9408.07 97.49 0.0 conventional 2015 Albany
2 2 2015-12-13 0.93 118220.22 794.70 109149.67 130.50 8145.35 8042.21 103.14 0.0 conventional 2015 Albany
3 3 2015-12-06 1.08 78992.15 1132.00 71976.41 72.58 5811.16 5677.40 133.76 0.0 conventional 2015 Albany
4 4 2015-11-29 1.28 51039.60 941.48 43838.39 75.78 6183.95 5986.26 197.69 0.0 conventional 2015 Albany

Localde bulunan dataset’i tanıtma

  • Not: dataset’in yeri notebook veya kod’un yeri ile aynı değilse (‘avocado.csv’) kısmındaki tırnağın içerisinde yolu yazmanız gerekiyor.

Input:

Output:

Unnamed: 0 Date AveragePrice Total Volume 4046 4225 4770 Total Bags Small Bags Large Bags XLarge Bags type year region
0 0 2015-12-27 1.33 64236.62 1036.74 54454.85 48.16 8696.87 8603.62 93.25 0.0 conventional 2015 Albany
1 1 2015-12-20 1.35 54876.98 674.28 44638.81 58.33 9505.56 9408.07 97.49 0.0 conventional 2015 Albany
2 2 2015-12-13 0.93 118220.22 794.70 109149.67 130.50 8145.35 8042.21 103.14 0.0 conventional 2015 Albany
3 3 2015-12-06 1.08 78992.15 1132.00 71976.41 72.58 5811.16 5677.40 133.76 0.0 conventional 2015 Albany
4 4 2015-11-29 1.28 51039.60 941.48 43838.39 75.78 6183.95 5986.26 197.69 0.0 conventional 2015 Albany
  • Mesela bu Dataset’ten Date Sutün’unu düşürmek istersem.

Input:

Output:

Unnamed: 0 AveragePrice Total Volume 4046 4225 4770 Total Bags Small Bags Large Bags XLarge Bags type year region
0 0 1.33 64236.62 1036.74 54454.85 48.16 8696.87 8603.62 93.25 0.0 conventional 2015 Albany
1 1 1.35 54876.98 674.28 44638.81 58.33 9505.56 9408.07 97.49 0.0 conventional 2015 Albany
2 2 0.93 118220.22 794.70 109149.67 130.50 8145.35 8042.21 103.14 0.0 conventional 2015 Albany
3 3 1.08 78992.15 1132.00 71976.41 72.58 5811.16 5677.40 133.76 0.0 conventional 2015 Albany
4 4 1.28 51039.60 941.48 43838.39 75.78 6183.95 5986.26 197.69 0.0 conventional 2015 Albany

Dataseti üzerinde ayar yaptıktan sonra kaydetme

Input:

Exceldataset’i okutma

  • Çoğu zaman excel ve csv kullanıldığı için json vs. anlatmayacağım ama onları merak ederseniz google’a “pd.read_dosyatipi” şeklinde aratmanız yeterli olacaktır.
  • Örnek : pd.read_html

Input:

Output:

İstanbul Ankara İzmir Adana
0 1 5 7 6
1 2 1 4 5
2 5 1 6 3
3 6 7 7 8
  • Bu şekilde her zaman ilk sayfayı alır çoklu sayfalılarda bile, diğer sayfalara erişmek için ise;

Input:

Output:

Amsterdam CA
0 21 123
1 13 41
  • Gördüğünüz gibi 2. sayfayı açtık.

Input:

Json Tipi Data Okutma

Input:

Output:

Adana Ankara İstanbul İzmir
0 6 5 1 7
1 5 1 2 4
2 3 1 5 6
3 8 7 6 7

Input:

Output:
Input:

Hakkında Yunus Emre GÜNDOĞMUŞ

19 Yaşında Veri Bilimine Her Alanından Saldırıp, Kendini Geliştirmeye Çalışan Bir Girişimci

GÖZ ATMAK İSTEYEBİLİRSİNİZ

Minitab Destekli İstatistiksel Analiz Eğitimleri – Ders 1/9 [Minitab Hakkında Genel Bilgi Giriş, Menüler ve Araç Çubukları]

Minitab Hakkında Kalite iyileştirme ve istatistik eğitimi konularında dünyanın lider yazılım ve hizmet sağlayıcısıdır. Merkezi …

Bir Yorum

  1. ..

    index2 = [“İstanbul”, “Ankara”, “İzmir”, “Yalova”, “Adana”, “Diyarbakır”, “Bursa”] #Yalnış

    ..

    kısmında “Yanlış” yazılmalıydı

Bir cevap yazın

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