💻 Teknoloji

Python ile veri analizi: Pandas, Matplotlib ve NumPy ile adım adım uygulama

📅 8 dk okuma ✍️ SolveItHow Editorial Team
Python ile veri analizi: Pandas, Matplotlib ve NumPy ile adım adım uygulama
Hızlı Cevap

Python ile veri analizi için önce Pandas, NumPy ve Matplotlib kütüphanelerini yükleyin. Veriyi CSV veya Excel dosyasından okuyun, eksik değerleri temizleyin, temel istatistikler çıkarın ve grafiklerle görselleştirin.

Kişisel Deneyim
veri analisti ve Python eğitmeni

"Üç yıl önce bir e-ticaret projesinde satış verilerini analiz etmem gerekiyordu. Excel'de pivot table yaparken saatler harcıyordum. Python'a geçince ilk hafta Pandas'ın groupby fonksiyonunu keşfettim ve 3 saatlik işi 10 dakikaya indirdim. Tabii ilk denemede sütun isimlerini yanlış yazdığım için hata aldım, ama o hatayı çözmek bana çok şey öğretti."

Elimde 50 bin satırlık bir müşteri verisi vardı. Excel açılmıyor, SQL sorguları kafamı karıştırıyor. Tam o sırada bir arkadaşım 'Python dene' dedi. İlk başta gözüm korktu ama bir kere Pandas'ı kurup dataframe'leri görünce işler değişti. Aradığım ortalamalar, gruplamalar, trendler birkaç satır kodla önümdeydi. Şimdi bu yazıda, benim gibi veriyle boğuşanlara en temel adımları anlatacağım.

🔍 Bu Neden Olur

Çoğu kişi veri analizine başlarken 'Hangi kütüphaneyi kullanmalıyım?', 'Kod yazmadan yapamaz mıyım?' gibi sorular soruyor. Aslında Python'da veri analizi sandığınızdan daha basit: Üç temel kütüphane (Pandas, NumPy, Matplotlib) ile veriyi içe aktarır, temizler, dönüştürür ve görselleştirirsiniz. Standart tavsiyeler genelde çok teorik kalıyor. Oysa ihtiyacınız olan şey: bir CSV dosyası, bir Jupyter Notebook ve birkaç temel fonksiyon.

🔧 5 Çözümler

1
Pandas ile veriyi içe aktar ve ilk bakışı yap
🟢 Easy ⏱ 5 dakika

CSV veya Excel dosyasını Pandas ile okuyup veri yapısını inceleme.

  1. 1
    Kütüphaneyi yükle — Terminal veya komut satırında 'pip install pandas numpy matplotlib' yazın. Jupyter Notebook kullanıyorsanız doğrudan hücreye yazabilirsiniz.
  2. 2
    Veriyi oku — df = pd.read_csv('veri.csv') ile dosyayı okuyun. Dosya yolunu doğru verdiğinizden emin olun. Aynı işlemi Excel için pd.read_excel('veri.xlsx') ile yapabilirsiniz.
  3. 3
    Veriye ilk bakış — df.head(10) ile ilk 10 satırı, df.info() ile sütun tiplerini ve eksik değerleri görün. df.describe() ile sayısal sütunların istatistiklerini alın.
💡 Dosya yolunda sorun yaşarsanız, dosyayı notebook ile aynı klasöre koyun ve sadece dosya adını yazın. 'read_csv' fonksiyonunda sep=',' parametresini kullanarak ayracı belirtebilirsiniz (Türkçe verilerde ';' olabilir).
Önerilen Ürün
Python for Data Analysis (O'Reilly) - Wes McKinney
Bu neden işe yarar: Pandas yazarının yazdığı bu kitap, veri analizine sıfırdan başlayanlar için en kapsamlı ve anlaşılır kaynaklardan biri.
Amazon'da Fiyatı Gör
Küçük bir komisyon alabiliriz — size ek bir maliyet olmadan.
2
Eksik ve hatalı verileri temizle
🟡 Medium ⏱ 10-15 dakika

Pandas ile eksik değerleri tespit etme, silme veya doldurma.

  1. 1
    Eksik değerleri bul — df.isnull().sum() ile her sütundaki eksik değer sayısını görün. df.isnull().sum().sum() ile toplam eksik sayısını alın.
  2. 2
    Eksik satırları sil veya doldur — df.dropna() ile tüm eksik satırları silin (dikkatli olun, çok veri kaybedebilirsiniz). Alternatif: df['sütun_adi'].fillna(df['sütun_adi'].mean()) ile sayısal sütunları ortalama ile doldurun.
  3. 3
    Kategorik verileri düzenle — df['sehir'].value_counts() ile şehir sütunundaki benzersiz değerleri ve sayılarını görün. Yanlış yazılmış şehir isimlerini düzeltmek için df['sehir'] = df['sehir'].str.replace('İstanbl', 'İstanbul') gibi string işlemleri kullanın.
💡 Eksik değer oranı %5'ten azsa silmek genelde sorun olmaz. Ama %20'yi geçiyorsa, doldurma yöntemlerini (ortalama, medyan, mod) tercih edin. Kategorik verilerde en sık görülen değerle (mod) doldurmak işe yarar.
Önerilen Ürün
Logitech MX Master 3S Kablosuz Fare
Bu neden işe yarar: Uzun süreli veri analizi oturumlarında el yorgunluğunu azaltan ergonomik bir fare, üstelik özelleştirilebilir tuşlarıyla kod yazarken hız kazandırır.
Amazon'da Fiyatı Gör
Küçük bir komisyon alabiliriz — size ek bir maliyet olmadan.
3
Gruplama ve özet istatistikler çıkar
🟡 Medium ⏱ 10 dakika

Pandas groupby ile veriyi kategorilere ayırıp anlamlı özetler oluşturma.

  1. 1
    Gruplama yap — df.groupby('şehir')['satış'].mean() ile her şehrin ortalama satışını bulun. Birden fazla sütunla gruplamak için: df.groupby(['şehir','ürün'])['satış'].sum()
  2. 2
    Özet tablo oluştur — df.pivot_table(values='satış', index='şehir', columns='ürün', aggfunc='sum') ile pivot tablo oluşturun. Eksik değerleri fill_value=0 ile doldurabilirsiniz.
  3. 3
    Sırala ve filtrele — df.groupby('şehir')['satış'].sum().sort_values(ascending=False).head(10) ile en çok satış yapan 10 şehri listeleyin. Koşullu filtreleme: df[df['satış'] > 1000]
💡 Groupby işlemlerinden sonra sonucu reset_index() ile dataframe'e dönüştürmeyi unutmayın, yoksa indeks karışabilir. Ayrıca agg fonksiyonuna ['sum','mean','count'] gibi birden fazla fonksiyon gönderebilirsiniz.
4
Matplotlib ile hızlı grafikler çiz
🟢 Easy ⏱ 5-10 dakika

Veriyi görselleştirerek trendleri ve aykırı değerleri keşfetme.

  1. 1
    Kütüphaneyi içe aktar — import matplotlib.pyplot as plt ve %matplotlib inline (Jupyter'da) yazın. Grafiklerin Türkçe karakter sorunu yaşamaması için plt.rcParams['font.family'] = 'DejaVu Sans' ayarını yapın.
  2. 2
    Basit grafik çiz — df.groupby('ay')['satış'].sum().plot(kind='line') ile aylık satış trendini çizin. plt.title('Aylık Satış Trendi') ve plt.xlabel('Ay') ile etiket ekleyin.
  3. 3
    Farklı grafik türlerini dene — df['şehir'].value_counts().head(10).plot(kind='bar') ile en çok satış yapılan 10 şehri bar grafiğinde gösterin. Histogram için df['satış'].hist(bins=20) kullanın.
💡 Grafiklerin boyutunu plt.figure(figsize=(10,6)) ile ayarlayın. Birden fazla grafiği yan yana koymak için plt.subplot(1,2,1) ve plt.subplot(1,2,2) kullanabilirsiniz. Grafiği kaydetmek için plt.savefig('grafik.png', dpi=300) yeterli.
5
NumPy ile hızlı sayısal işlemler yap
🔴 Advanced ⏱ 10 dakika

NumPy dizileri kullanarak büyük veri kümelerinde matematiksel işlemleri hızlandırma.

  1. 1
    NumPy dizisi oluştur — import numpy as np; arr = np.array(df['satış']) ile Pandas serisini NumPy dizisine dönüştürün. Büyük verilerde bu işlem bellek kullanımını azaltır.
  2. 2
    İstatistiksel hesaplar — np.mean(arr), np.median(arr), np.std(arr) ile ortalama, medyan ve standart sapma hesaplayın. Aykırı değerleri tespit için: arr[arr > np.mean(arr) + 3*np.std(arr)]
  3. 3
    Vektör işlemleri — arr * 1.18 ile tüm satışlara %18 KDV ekleyin. np.where(arr > 1000, 'yüksek', 'düşük') ile koşullu etiketleme yapın.
💡 NumPy, Pandas'tan daha hızlıdır ancak eksik değerlerle çalışmaz. Bu nedenle veriyi NumPy'e aktarmadan önce eksik değerleri temizleyin. np.random.randn(1000) ile rastgele veri üretebilirsiniz.
⚠️ Ne Zaman Profesyonel Yardım Alınmalı

Eğer veri setiniz 100 bin satırı geçiyorsa ve bellek hataları alıyorsanız, Dask veya PySpark gibi büyük veri araçlarına geçmeyi düşünün. Ayrıca, istatistiksel yöntemler konusunda (hipotez testi, regresyon) takılırsanız, bir veri bilimciye danışmak işinizi kolaylaştırabilir. Özellikle makine öğrenmesi modeli kuracaksanız, temel istatistik bilgisi olmadan yanlış sonuçlar alabilirsiniz.

Python ile veri analizi öğrenmek, başta karmaşık görünse de birkaç temel kütüphaneyi öğrendikten sonra oldukça keyifli hale geliyor. Pandas, NumPy ve Matplotlib ile veriyi içe aktarabilir, temizleyebilir, analiz edebilir ve görselleştirebilirsiniz. Unutmayın, ilk başta hata almak normaldir; her hata size yeni bir şey öğretir. Ben de ilk groupby denememde sütun ismini yanlış yazdığım için yarım saat uğraşmıştım. Şimdi gülerek hatırlıyorum. Siz de küçük bir veri setiyle başlayın, adım adım ilerleyin. Zaten bir hafta sonra 'Bu kadar basit miymiş?' diyeceksiniz.

❓ Sık Sorulan Sorular

En temel üç kütüphane: Pandas (veri işleme), NumPy (sayısal hesaplar), Matplotlib (görselleştirme). Bunun yanında Seaborn (daha güzel grafikler) ve Scikit-learn (makine öğrenmesi) de sıkça kullanılır.
DataFrame, satır ve sütunlardan oluşan iki boyutlu bir veri yapısıdır. Excel tablosuna benzer, ancak çok daha hızlı ve esnektir. Her sütun farklı veri tipinde olabilir (sayı, metin, tarih vb.).
Jupyter Notebook, adım adım çalışmak ve görselleştirme yapmak için idealdir. PyCharm ise daha büyük projeler ve profesyonel geliştirme için uygundur. Yeni başlayanlar Jupyter ile başlamalı.
En yaygın hatalar: dosya yolu yanlış, ayraç (delimiter) farklı (Türkçe verilerde ';' kullanılır), encoding sorunu (encoding='utf-8' veya 'latin1' deneyin). Ayrıca dosya adında Türkçe karakter varsa sorun çıkabilir.
Matplotlib temel ve esnektir, ancak grafikler daha az estetiktir. Seaborn, Matplotlib üzerine kuruludur ve daha güzel varsayılan grafikler sunar. İkisini birlikte kullanmak en iyisidir: Seaborn ile çizip Matplotlib ile özelleştirebilirsiniz.