Python ile Veri Temizleme İşlemleri
Veri analizi yapmadan önce ilk yapılması gereken şeylerden biri “veri temizleme”dir. Veri temizleme işlemi; analiz yaparken verilerimizin daha anlaşılır ve daha verimli kullanılabilmesi için önemli bir aşamadır.
Analiz yapmadan önce veri kümesinin manipüle edilmesi, tekrar eden kayıtların kaldırılması, boş veya eksik değerlerin düzenlenmesi gerekir. Bu işlemleri gerçekleştirmediğimiz durumda hesaplama yaparken büyük sorunlarla karşılaşabiliriz.
Bu yazımızda örnek bir e-ticaret sitesi verisi üzerinde veri temizleme işlemleri yapacağız. Bu işlemler için Jupyter Notebook kullanacağız.
Veri Toplama
- Öncelikle Kaggle web sitesinden bir veri seti indireceğiz. Tercihinize göre farklı kaynaktaki bir veri setini de kullanabilirsiniz.
- Bu projede kullandığımız veri seti;
https://www.kaggle.com/datasets/vivek468/superstore-dataset-final
Gerekli kütüphanelerin içeri aktarılması
İlk adımda, gerekli kütüphaneleri import etmemiz gerekiyor.
import pandas as pd
Veri setimizi okumak için pandas kütüphanesi ile dataframe içerisinde görüntülüyoruz.
storeData = pd.read_csv('./storeData.csv', encoding='cp1252')
storeData.head()
Dataframe içerisine veri setimizi yüklemek için pandas kütüphanesinin read_csv metodunu kullandık. Sonrasında ilk beş satırı listelemek için head metodunu kullanıyoruz.
Verimizdeki her bir satır; ürünlerin birim fiyatını, sipariş miktarını, kâr oranını ve kargo metodunu temsil ediyor.
Gereksiz Verilerin Silinmesi
‘Customer ID’ isimli sütun’u analimizde kullanmayacağımız için kaldırabiliriz. Drop metodu ile istemediğimiz sütunu kaldırdık. Sonrasında veri setimizi columns parametresini kullanarak sütunları doğrulamış olduk.
storeData.drop('Customer ID',axis=1,inplace=True)
storeData.columns
Sonuç:
Index(['Order Date', 'Ship Date', 'Ship Mode', 'Customer ID', 'Customer Name',
'Segment', 'City', 'State', 'Postal Code', 'Region', 'Product ID',
'Category', 'Sub-Category', 'Product Name', 'Sales', 'Quantity',
'Discount', 'Profit', 'profit margin'],
dtype='object')
Veri Bütünlüğü
Şimdi de veri setimiz hakkında daha fazla bilgi edinmemiz gerekiyor. Shape komutu ile veri setimizde kaç sütun ve satır olduğunu öğrenebiliriz.
storeData.shape
Result => (9994, 19)
Başlık ve 19 sütun dahil 9.994 satır vardır.
storeData.info()
Info komutu ile verinin satır ve sütunlarının uyuştuğunu, boş değer olup olmadığını ve veri tiplerini doğruladık.
Eksik Değerlerin Kontrol Edilmesi
Bir sütundaki değer eksik veya bilinmiyorsa null değeri kullanılır. NaN, sayı değil anlamına gelir ve bir veri kümesindeki eksik değeri temsil etmek için kullanılır. Aşağıdaki komut ile satırlarımızda null olan kayıt olup olmadığını öğreniyoruz.
storeData.isnull().sum()
Tekrar Eden Satırların Kaldırılması
Yinelenen değerler varsa veri kümemizden kaldırmamız gerekiyor.
storeData.duplicated().sum()
result => 1
Komutu çalıştırdığımızda bir satır yinelenen veri bulduk. Tekrar eden kayıtları listelemek için duplicated komutunu kullanıyoruz.
storeData[storeData.duplicated(keep = 'last')]
storeData.drop_duplicates(inplace = True)
storeDatastore.shape
Result => (9993, 18)
Tekrar eden kayıtlarımızı kaldırdıktan sonra shape komutunu kullanarak tekrar eden kayıtların kaldırılıp kaldırılmadığını teyit ediyoruz.
Bu yazımızda belli başlı veri temizleme yöntemlerini kullandık. Veri büyüklüğüne ve karmaşıklığına göre veri temizleme için farklı yöntemler de kullanabilir.
Bir sonraki yazımızda temizlediğimiz veri kümesi üzerinde e-ticaret satış analizi yapacağız.