Günümüzde verinin en yaygın ve basit saklama biçimlerinden biri olan CSV (Comma Separated Values), düz metin dosyaları üzerinden tablolar oluşturmamıza olanak tanır. İster basit bir müşteri listesi olsun, ister milyonlarca satırlık bir satış raporu; CSV dosyaları, farklı yazılımlar arasında veri taşımak için evrensel bir standarttır.
Python, sunduğu geniş kütüphane ekosistemi sayesinde CSV verilerini işlemek için dünyadaki en güçlü dillerden biridir. Bu yazımızda, veri işleme süreçlerini iki farklı perspektiften inceleyeceğiz: Python’un standart kütüphanesi ile hafif çözümler ve Pandas ile gelişmiş analizler.
🚀 Projenin Genel Yetenekleri
Bu çalışma, gerçek dünya senaryolarına uygun bir satış veri kümesi üzerinden şu işlemleri gerçekleştirir:
- Otomatik Veri Üretimi: Test süreçleri için dinamik CSV dosyaları oluşturma.
- Sözlük Tabanlı Okuma: Sütun isimlerini anahtar olarak kullanan esnek veri okuma yöntemi.
- Özel Filtreleme: Belirli kriterlere (örneğin kategoriye) göre verileri ayıklama.
- Sayısal Analiz: Minimum, maksimum ve ortalama gibi temel istatistiklerin hesaplanması.
- Veri Yazma: İşlenmiş ve filtrelenmiş verileri yeni bir CSV dosyasına kaydetme.
- Grup Tabanlı Özetleme: Pandas ile kategorilere göre toplu analizler yapma.
🛠️ Kodun Anatomisi
Projenin geliştirme detayları şu şekildedir:
Proje Detayları
- Yazar: Ahmet Aksoy
- Tarih: 19 Nisan 2026
- Ortam: Python 3.12 / Ubuntu 24.04
- Temel Teknolojiler: Python
csvModülü, Pandas
🔍 Teknik Derinlik: İki Farklı Yaklaşım
1. Hafif ve Bağımsız: Standart csv Modülü
Harici hiçbir kütüphane yüklemeden, sadece Python’un yerleşik araçlarıyla CSV işlemleri yapmak mümkündür. Bu yaklaşım, özellikle bağımlılıkların minimumda tutulması gereken küçük scriptler için idealdir.
Buradaki en kritik araç csv.DictReader sınıfıdır. Bu sınıf, her satırı bir sözlük (dictionary) olarak döndürür, böylece sütunların sırası değişse bile biz veriye sütun adı üzerinden erişebiliriz.
import csv
def read_csv_rows(path):
with open(path, "r", newline="") as f:
# DictReader sayesinde sütun isimleri anahtar olur
reader = csv.DictReader(f)
return list(reader)
Ayrıca, filtrelenmiş verileri kaydetmek için csv.DictWriter kullanarak başlıkları koruyan temiz dosyalar oluşturabiliriz.
2. Veri Biliminin Gücü: Pandas
Veri setiniz büyüdüğünde veya karmaşık istatistiksel analizlere ihtiyaç duyduğunuzda, standart kütüphane yetersiz kalmaya başlar. İşte burada devreye Pandas girer. Pandas, veriyi “DataFrame” adı verilen güçlü bir tablo yapısında tutar.
Örneğin, tüm kategorilerin toplam satış tutarını ve ortalamasını hesaplamak, standart Python ile onlarca satır kod gerektirirken Pandas ile sadece tek bir satıra iner:
import pandas as pd
def pandas_group_stats(path):
df = pd.read_csv(path)
# Kategorilere göre grupla ve toplam, ortalama, sayım hesapla
grouped = df.groupby("category")["total"].agg(['sum', 'mean', 'count'])
return grouped
⚖️ Karşılaştırma: Hangisini Seçmeli?
| Özellik | csv Modülü | Pandas Kütüphanesi |
|---|---|---|
| Kurulum | Gerektirmez (Yerleşik) | pip install pandas gerekir |
| Hız (Küçük Veri) | Çok Hızlı | Orta |
| Hız (Büyük Veri) | Yavaş (Manuel Döngüler) | Çok Hızlı (Vektörize İşlemler) |
| Kullanım Kolaylığı | Temel İşlemler İçin Uygun | Analiz ve Raporlama İçin Rakipsiz |
| Bellek Kullanımı | Düşük | Yüksek |
🏁 Sonuç
CSV işlemleri, veri biliminin ve otomasyonun ilk basamağıdır. Python’un yerleşik csv modülü ile temel dosya G/Ç işlemlerini öğrenmek, ardından Pandas gibi devasa kütüphanelere geçiş yapmak, bir geliştiricinin veri manipülasyonu yeteneklerini en üst seviyeye taşır.
Kendi projelerinizde, eğer sadece bir dosyayı okuyup basit bir filtreleme yapacaksanız standart modülü; ancak veriden anlamlı sonuçlar çıkarmak ve raporlar hazırlamak istiyorsanız Pandas’ı tercih edin.
Ahmet Aksoy
Not: Bu yazıda incelediğimiz kodu ve benzer projelerin kaynak kodlarını https://github.com/ahmetax/practical-python-examples adresinde bulabilirsiniz.
Python, #CSV, #Pandas, #VeriAnalizi, #DataScience