Python Pandas ile Temel İşlemler

Bölüm 1 – Dosya Okuma & Sütun İsimlendirme

Pandas; veri analizi ve veri ön işlemeyi kolaylaştıran  açık kaynak kodlu bir kütüphanedir. Dil olarak Python kullanır. Pandas dağıtık işlemeye uygun değildir. Bu sebeple işleyeceğiniz verinin büyüklüğü makinenin kapasitesiyle sınırlıdır, özellikle de ana belleğin. Ben büyük veri setleri üzerinde işlem yaptığım için Pandas’ı çok fazla kullanamıyorum ancak bazı ufak tefek işleri yapıyorum yine de. Bu yazımda Pandas ile temel olarak neler yapılabilir, daha doğrusu ben çoğunlukla neler yapıyorum sizlerle paylaşacağım.

import pandas as pd

Pandas ile csv Dosyası Okumak

csv dosyamızı okuyalım ve bir değişkene atayalım. Dosyayı buradan indirebilirsiniz.

ufo = pd.read_csv('https://raw.githubusercontent.com/erkansirin78/datasets/master/uforeports.csv')

head() metodu ile veri setimizin ilk beş kaydına bir bakalım.

ufo.head()
  City Colors Reported Shape Reported State Time
0 Ithaca NaN TRIANGLE NY 6/1/1930 22:00
1 Willingboro NaN OTHER NJ 6/30/1930 20:00
2 Holyoke NaN OVAL CO 2/15/1931 14:00
3 Abilene NaN DISK KS 6/1/1931 13:00
4 New York Worlds Fair NaN LIGHT NY 4/18/1933 19:00

Veri setimiz kaç satır, kaç sütun yani boyutları nedir shape niteliğinden öğreniyoruz.

ufo.shape
(18241, 5)

Pandas ile csv Dosyasından Belirli Sütunları Okumak

Veri setindeki bazı niteliklerle işimiz yok ise en başta okurken sadece işimize yarayanları okuyabiliriz. Bunun için read_csv() metoduna sadece bir argüman eklememiz yeterli. Bu argüman bir liste ve bu listede seçilmek istenen sütun isimleri bulunur.

ufo_two_cols = pd.read_csv('https://raw.githubusercontent.com/erkansirin78/datasets/master/uforeports.csv', usecols=['State','Time'])

Pandas ile Sütun İsimlerini Değiştirmek

Haydi sütun isimlerini Türkçe yapalım. Öncelikle beş tane sütun isminin Türkçe karşılıklarını bir Python listesine atacağız. Sonra da bu listedeki isimleri veri setimizin sütun isimleriyle değiştireceğiz.

turkce_sutun_isimleri = ['Sehir','Renk','Sekil','Eyalet','Zaman']
ufo.columns = turkce_sutun_isimleri

Sonucu head() metoduyla hep beraber görelim.

ufo.head()
  Sehir Renk Sekil Eyalet Zaman
0 Ithaca NaN TRIANGLE NY 6/1/1930 22:00
1 Willingboro NaN OTHER NJ 6/30/1930 20:00
2 Holyoke NaN OVAL CO 2/15/1931 14:00
3 Abilene NaN DISK KS 6/1/1931 13:00
4 New York Worlds Fair NaN LIGHT NY 4/18/1933 19:00

Pandas ile Sütun Seçmek

Seçme işlemini iki yöntemle yapıyoruz. Mesela Sehir sütununu seçelim:

ufo['Sehir'] veya
ufo.Sehir
0                      Ithaca
1                 Willingboro
2                     Holyoke
3                     Abilene
...
18237             Spirit Lake
18238             Eagle River
18239             Eagle River
18240                    Ybor
Name: Sehir, dtype: object

Sonuç yukarıda görüldüğü gibidir. Aslında daha uzun bir liste görülür ancak ben makalemi kısa tutmak adına daha azını buraya aldım. İki yöntemin kullanımı şu şekilde farklılaşabilir. Eğer sütun isminiz boşluk içeriyorsa mutlaka köşeli parantez kullanmalısınız. Nitelik kullanımı ise ancak boşluksuz sütun isimlerinde kullanılabilir.

Pandas ile Sütun Birleştirmek

Şehir ve Eyalet sütunlarını tek sütun altında birleştirmek isteyelim ve bu sütunları virgülle ayıralım.

ufo['SehirEyalet'] = ufo.Eyalet + ', ' + ufo.Sehir
  Sehir Renk Sekil Eyalet Zaman SehirEyalet
0 Ithaca NaN TRIANGLE NY 6/1/1930 22:00 NY, Ithaca
1 Willingboro NaN OTHER NJ 6/30/1930 20:00 NJ, Willingboro
2 Holyoke NaN OVAL CO 2/15/1931 14:00 CO, Holyoke
3 Abilene NaN DISK KS 6/1/1931 13:00 KS, Abilene
4 New York Worlds Fair NaN LIGHT NY 4/18/1933 19:00 NY, New York Worlds Fair

yukarıdaki tabloda görüldüğü gibi SehirEyalet adında yeni bir sütun oluştu.

Pandas ile Veri Setindeki Veri Tiplerini  Yazdırmak

Veri setinde hangi nitelikler var ve bunların türü nedir görmek için dtypes niteliğini kullanıyoruz. Sonuç bir nevi şema gibi aslında. Bundan önce veri setimizde farklı bir nitelik türü olması açısından id sütunu ekleyelim. id sütununda satır sayısı kadar bir bir artan rakamlar olacak.

ufo['id'] = range(0,18241)

range(0,18241) fonksiyonu 0’dan 18241’e kadar bir liste oluşturdu ve bu listeyi alıp sütun halinde id niteliğinin altına ufo[‘id’] komutuyla koyduk. Şimdi veri türlerini yazdırabiliriz.

ufo.dtypes
Sehir          object
Renk           object
Sekil          object
Eyalet         object
Zaman          object
SehirEyalet    object
id              int64
dtype: object

Pandas ile Sütunları Yeniden Adlandırmak

Yukarıda sütun isimlerini tamamen değiştirmiş ve Türkçe yapmıştık. Şimdi ise sütun isimlerini değiştireceğiz. Bunun için rename() metodunu kullanacağız. Aşağıda Sehir sütun ismini değiştirerek Sehir_Yeni yapacak kodu bulacaksınız.

ufo.rename(columns ={'Sehir':'Sehir_Yeni'},inplace=True)

Kontrol edelim değişmiş mi?

ufo.columns
Index([u'Sehir_Yeni', u'Renk', u'Sekil', u'Eyalet', u'Zaman', u'SehirEyalet',u'id'], dtype='object')

Evet değişmiş. Şimdilik burada kesiyorum. Aşağıdan 2. sayfaya tıklayarak yeni bölüme bakabilirsiniz. Veriyle kalın…

Yazar Hakkında
Toplam 171 yazı
Erkan ŞİRİN
Erkan ŞİRİN
2014'ten beri hem akademik alanda hem de sektörde pratik anlamda büyük veri ve veri bilimi ile ilgili çalışmalar yürütmektedir. Büyük veri ve veri bilimi ile ilgili birçok kurum ve şirkete danışmanlık ve eğitimler vermekte, projeler icra etmektedir. Çalışma alanları: büyük veri platformlarının kurulum ve yönetimi, büyük veri üzerinde makine öğrenmesi, olağan dışılık ve sahtecilik tespiti, akan veri işleme ve veri hazırlama sürecidir.
Yorumlar (2 yorum)
Erkam
Erkam Cevapla
- 12:03

Mehaba. yukarıda türkçe sütun isimlerini değiştirmeden önce sütun sayısını 2’ye düşürdüğünüz için uyarı veriyor. Dolayısıyla sütun sayısını düşürmeden isim değişikliği yaptım. Bilginize. paylaşımlarınız için tşk ederim.

    Erkan ŞİRİN
    Erkan ŞİRİN Cevapla
    - 21:53

    Merhaba. Haklısınız. Düzeltme yaptım. İki sütun için dataframe’i “ufo_two_cols” ismiyle tuttuk. Çok teşekkürler.

Bir cevap yazın

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

×

Bir Şeyler Ara