İçeriğe geç

Verisetine Hızlı Bir Bakış

Merhabalar.

Bu yazımızda veri biliminin Hello World’ü sayılabilecek, üzerinde çalışacağımız bir veri setine hızlı ve özet bir bakış açısı sağlamamıza yarayan temel pandas işlemlerinden bahsedeceğim.

DataFrame: Pandas kütüphanesinin bize verdiği nimet. SQL veya Excel tabloları ile aynı mantıkta olan yapılardır. Tabular formdaki veriyi saklamamıza ve üzerinde çeşitli operasyonlar gerçekleştirmemize olanak sağlar. Satır ve sütunlardan (kolon da denilebilir) oluşur. Veri bilimi dünyasında kolonlar özellikleri, satırlar ise gözlemleri temsil eder.

Bu işlemlere başlamadan önce verilerimizi import etmemiz gerekiyor. Veri Import/Export hakkındaki yazıma ulaşmak isterseniz buraya tıklayabilirsiniz.

import pandas as pd
df = pd.read_csv("train.csv")

Ben şuan kaggle’dan indirdiğim Titanik veriseti üzerinde çalışacağım. Buyrun buda linki.

Bilmeyenler için hemen özet geçeyim, Gerçek bilgilere dayanan bir eğitim verisidir. Bu alanda çalışan/çalışacak herkesin karşısına en az bir kere çıkmıştır. Popüler kültürde de yeri olduğu için çok kullanılmaktadır.

1912 yılında buzdağına çarpıp batan RMS Titanic gemisindeki 2224 yolcunun çeşitli bilgileri bulunmakta(Kazadan kurtulup kurtulamadıkları da dahil). Bu özelliklerden faydalanarak veriseti üzerinde çok çeşitli eğitim çalışmaları yapmak mümkün.

Sözü daha fazla uzatmadan gözümüz alışsın diye inceleyeceğimiz fonksyonları aşağıya listeliyorum:

  • Head
  • Tail
  • Shape
  • Info
  • Columns
  • Value_Count
  • Describe
  • dtype
  • unique
  • nunique

.head()

Verisetimi import ettiğim ilk anda aklıma hemen “head atmak” geliyor. Nedir head atmak?

df.head()
df.head()

.head() komutu adından da anlaşılacağı üzere df’imizin başlığını getiriyor. Öntanımlı ayarlara bağlı olarak, ekrana sığabilecek kadar kolon ve ilk beş gözlemi bize sunuyor. Bu işlemi verisetini ilk okuttuğumda herhangi bir terslik var mı yok mu diye bakmak için kullanıyorum. Birde gerçekleştirdiğim işlemlerden sonra (merge, özelliklerin drop edilmesi vb.) işlemi doğrulamak için uyguluyorum.

İçerisine istediğiniz tamsayıyı girerseniz o sayıda gözlemi size döndürür. Öntanımlı değeri beştir.

df.head(3)
df.head(3)

.tail()

df.tail()
df.tail()

.head() fonskyonunun kardeşi. Verisetinin son beş gözlemini getirir. İçerisine aynı head fonksyonu gibi parametre alabilir.

.shape

Verisetimizin satır ve sütun sayılarını bir tuple halinde döndürür.

df.shape

(satır,sütun) sütun formatında çıktıyı verir. Tuple olduğu için index seçimi yapılabilir ve istenen değer seçilebilir.

df.shape[0] #satır sayısı seçimi
df.shape[1] #sütun sayısı seçimi

.columns

Verisetinin kolon isimlerini döndürür.

df.columns

Liste şeklinde döndürür. Aynı df.shape’te olduğu gibi index bilgisi ile istediğimiz kolon adını döndürebiliriz.

df.columns[0]

Bu foknsyon kullanılarak list comprehension yardımıyla kolonlar üzerinden seçme-eleme-ayıklama işlemleri gerçekleştirilebilir.

Örneğin içerisinde “id” geçen kolonları bulalım.

id_cols = [col for col in df.columns if "id".lower() in col.lower()]
print(id_cols)
İçerisinde “id” geçen kolonları bulmak.

If kısmında her iki tarafı da (“id” ve “col”) küçük harfe çevirerek( .lower()) büyük-küçük harflerden oluşabilecek uyumsuzlukları engelledik.

Bu tür işlemler genelde çok sayıda kolon içeren verisetlerinin olmazsa olmazlarından oluyor. Örneğin 100 kolonlu bir verisetinde göz ile id kolonu aramk gerçek zor ve zaman kaybı olacaktır. Bu tarz küçük fonksyonlar ile işlerimiz hızlı bir şekilde gerçekletirebilir ve zaman kazanabiliriz.

.info()

Veriseti ile ilgili özet bilgiler verir.

df.info()
df.info()

.describe()

Sayısal özelliklerimiz için biçilmiş kaftan.

Bu kodu çalıştırmadan önce çıktı tablomu tek parça halinde ve tam olarak görebilmek için iki tane ayar yapmak istiyorum;

df.depd.set_option('display.max_columns',10) 
# gösterilecek kolon sayısı
pd.set_option('display.width', 150)         
# Gösterilecek çıktının aşağı bölünmemesi için çıktı uzunluğu
# Kendi tercihinize göre değiştireiblirsiniz
df.describe()

Integer ve float tipinde olan özelliklerimizi otomatikman algılayıp betimsel istatistik metodlarını uygular.

Farklı çeyrekli dilimlerini gözlemlemek istiyorsak fonksyonun içerisine istediğimiz dilimlerin yüzdelik karşılıklarını liste olarak girebiliriz.

df.describe([0.01,0.05,0.25,0.50,0.75,0.90,0.95,0.99])

Belirli bir kolonu seçmek

Spesifik bir kolon üzerinde çalışmak veya gözlemlemek için kolon seçimi yapılabilir. Verisetinde belirli bir kolonu seçmenin iki farklı oylu vardır.

a= df.kolonismi


b = df["kolonismi"]

Age kolonunu seçelim:

age_col_1 = df["Age"]
age_col_2 = df.Age
print(age_col_1)
print(age_col_2)
age_col_1
age_col_2

hll

spr

dvm

: )

: )

: )

: )

: )

.dtype

Belirli bir kolonun veri tipi bilgisini gösterir.

df["Age"].dtype
df.Name.dtype

.value_counts()

Kategorik değişkenler için her bir değerin gözlemlenen sayısını verir. Çok sık kullanılan bir fonksyondur.

df.Embarked.value_counts()
# veya
df["Embarked"].value_counts()

.unique ve .nunique

unique; kategorik değişkenin benzersiz değerlerini bir liste halinde döndürür(SQL deki DISTINCT gibi).

df.Embarked.unique()
df["Embarked"].unique()

nan: eksik gözlemler.

nunique ise benzersiz değerlerin sayısın döndürür. Fakat eksik değerleri göz önünde bulundurmaz.

df.Embarked.nunique()
df["Embarked"].nunique()

Bu yazımızda pandas kütüphanesinin çok kullanılan veri seti tanıma fonksiyonlarını inceledik. Özetle bir tablo haline getirecek olursak

Bir sonraki yazımızda bu metotları birleştirerek verilen bir veri seti için summary() isimli otomatik özet çıkartan fonksiyonu ele alacağız.

Tarih:PythonVeri Bilimi