Veri bilimi dünyasında işler her zaman pürüzsüz gitmez. Bazen, yüzlerce hatta binlerce veriyle uğraşırken, veri kümesindeki hatalarla boğuşmak zorunda kalırız. Bu, özellikle veriler karmaşık ve düzensiz olduğunda, işin zor kısmına dönüşebilir. Peki, bu karmaşık verilerle başa çıkmak ve onları anlamlı hale getirmek için ne yapmalıyız? İşte tam burada Python devreye giriyor. Python’un sunduğu güçlü araçlarla veri temizleme işlemi, veri analistleri ve veri bilimcileri için adeta bir kurtarıcı olabilir.
Veri setlerinde eksik verilerle sıkça karşılaşırsınız. Bu eksik veriler, analizlerinizi yanıltabilir ve doğru sonuçlar elde etmenizi engelleyebilir. Python’da eksik verilerle başa çıkmak için birkaç farklı yol vardır. Pandas kütüphanesi, eksik verileri tespit etmek ve doldurmak için oldukça kullanışlıdır.
import pandas as pd
df = pd.read_csv("data.csv")
# Eksik değerleri tespit etme
missing_data = df.isnull().sum()
# Eksik değerleri doldurma
df.fillna(df.mean(), inplace=True)
Bu kod, eksik verilerinizi ortalama ile doldurur. Tabii ki, eksik veriyi doldurma işleminde daha spesifik yaklaşımlar da kullanılabilir.
Birçok zaman, veri setinde bulunan bazı sütunların türleri yanlış olabilir. Mesela, bir sütundaki sayısal veriler metin olarak kaydedilmiş olabilir. Bu gibi durumlar, veri analizi sürecinde karışıklıklara yol açabilir. Pandas ile veri türlerini düzeltmek oldukça basittir.
# Verilerin doğru türde olduğundan emin olalım
df["column_name"] = pd.to_numeric(df["column_name"], errors='coerce')
Bu kod, veri türlerini doğru şekilde düzeltir ve hatalı değerleri ‘NaN’ olarak işaretler.
Bazen veriler, yanlışlıkla birden fazla kez kaydedilir. Yinelenen satırlar, analizlerinizi yanıltabilir ve zaman kaybına yol açabilir. Pandas ile yinelenen verileri kolayca tespit edebilir ve kaldırabilirsiniz.
# Yinelenen satırları kaldırma
df.drop_duplicates(inplace=True)
Bu basit kod, veri setinizdeki tüm yinelenen satırları temizler ve size sadece benzersiz verilerle çalışmak kalır.
Aykırı değerler, verilerinizdeki sıradışı sonuçlardır ve çoğu zaman analizlerinizi ciddi şekilde etkiler. Aykırı değerlerin tespit edilmesi ve temizlenmesi, doğru sonuçlar almanız açısından kritik önem taşır.
# Aykırı değerlerin tespiti için IQR (Interquartile Range) kullanma
Q1 = df["column_name"].quantile(0.25)
Q3 = df["column_name"].quantile(0.75)
IQR = Q3 - Q1
lower_bound = Q1 - 1.5 * IQR
upper_bound = Q3 + 1.5 * IQR
df_cleaned = df[(df["column_name"] >= lower_bound) & (df["column_name"] <= upper_bound)]
Bu yöntem, IQR (çeyrekler arası aralık) kullanarak aykırı değerleri filtreler ve doğru analiz için verilerinizi temizler.
Veri setlerinde bazen tarih, saat gibi formatlar doğru şekilde kaydedilmeyebilir. Python, bu tür verileri düzgün bir şekilde formatlamak için de oldukça güçlü araçlar sunar.
# Tarih formatını düzeltmek
df["date_column"] = pd.to_datetime(df["date_column"])
Bu kod, tarih verilerini doğru bir şekilde pandas’ın `datetime` formatına dönüştürür ve veri setinizin tüm zaman bilgilerini düzgün bir şekilde işler.
Farklı kaynaklardan gelen veriler bazen farklı ölçü birimlerinde olabilir. Bu durum, özellikle makine öğrenimi modellerinde sorunlara yol açabilir. Veri standardizasyonu ve normalizasyonu, farklı ölçü birimlerinin uyumlu hale gelmesini sağlar.
from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
df[["column1", "column2"]] = scaler.fit_transform(df[["column1", "column2"]])
Bu kod, verilerinizi standartlaştırarak her özelliğin benzer bir dağılıma sahip olmasını sağlar.
Veri setlerinde bazen kategorik veriler bulunur. Bu tür veriler, makine öğrenimi algoritmalarında işlenmesi için sayısal verilere dönüştürülmelidir. Python, kategorik verileri sayısal verilere dönüştürmek için LabelEncoder veya OneHotEncoder gibi araçlar sunar.
from sklearn.preprocessing import LabelEncoder
encoder = LabelEncoder()
df["category_column"] = encoder.fit_transform(df["category_column"])
Bu kod, kategorik verileri sayısal verilere dönüştürür ve veri setinizin makine öğrenimi modellerine uygun hale gelmesini sağlar.