Tüm yazılar
Matematik11 Ocak 2025

Pandas: Python'da Veri İşleminin Tartışmasız Standardı

Wes McKinney 2008'de bir hedge fund için yazdı. Bugün Python veri biliminin yarısı pandas üzerinden geçiyor.

Matematik Karavanı 6 dk okuma 5 soru
Spreadsheet — DataFrame metaforu

"Veri Excel'de değil, kodda olmalı"

2008: Wes McKinney, AQR Capital Management'de quant. Excel'in finansal veri analizi için sınırlı olduğunu görüyor. R'ın tidyverse'i ise henüz yok.

Çözüm: kendi Python kütüphanesini yaz — pandas (panel data).

15 yıl sonra: Python veri biliminin standartı.

DataFrame fikri

import pandas as pd
df = pd.read_csv('satislar.csv')
df.head()

Çıktı: tablo — sütunlar isimli, satırlar indeksli.

DataFrame: R'ın data.frame'inin NumPy üzerine Python versiyonu. Hızlı, vectorized.

Temel operasyonlar

Seçim ve filtreleme

df[df['fiyat'] > 100]
df.loc[df.tarih > '2024-01-01', ['ürün', 'fiyat']]

Gruplama

df.groupby('kategori')['fiyat'].mean()

Birleştirme

pd.merge(df1, df2, on='müşteri_id')

Pivot

df.pivot_table(values='satış', index='ay', columns='ürün', aggfunc='sum')

Zaman serisi

df.resample('M').sum()
df.rolling(window=7).mean()

NumPy'dan farkı

NumPy: homojen çok boyutlu dizi. Sayısal hesaplama.

pandas: heterojen tablo. Sütunlar farklı türde (sayı, metin, tarih). İsimli indeks. Eksik veri (NaN) doğal.

NumPy üzerine kurulu — alt yapısı NumPy.

Ekosistem

  • scikit-learn: ML, DataFrame girdi.
  • matplotlib/seaborn: görselleştirme.
  • statsmodels: istatistik modeller.
  • Plotly: interaktif.
  • Streamlit/Dash: dashboard.

Hepsi pandas DataFrame ile çalışır → standartlaşma.

Performans sınırlamaları

Pandas single-threaded, tek makinede. Büyük veri (10GB+) zorlanır.

Modern alternatifler:

  • Polars (Ritchie Vink, 2020): Rust ile yazılmış, çok hızlı, lazy evaluation.
  • Dask: paralel pandas, dağıtık.
  • Modin: drop-in replacement.
  • DuckDB: SQL + pandas birleşimi.
  • pyarrow: kolonlu format, hızlı I/O.

Polars özellikle 5-10x hız sunduğu için 2023-2025 ana akıma giriyor.

Sözdizimi acısı

Pandas eleştirilen tarafları:

  • SettingWithCopyWarning: zor anlaşılır.
  • Çoklu indeks (MultiIndex): karmaşık.
  • API tutarsızlık: apply, map, applymap — hangisi?
  • Hız: büyük veride yavaş.

dplyr (R) genellikle daha temiz kabul edilir.

Wes McKinney

  • Duke lisans (mathematics, 2007).
  • AQR Capital quant (2007-2010) — pandas burada doğdu.
  • Cloudera, Two Sigma — büyük veri.
  • Ursa Computing (2020-) — Apache Arrow.

2010'da pandas'ı açık kaynak'a aldı. 2017'de NumFOCUS vakfı altına geçirdi.

Apache Arrow

Wes'in büyük vizyonu: kolonlu bellek formatı. pandas, Polars, DuckDB, Spark — hepsi Arrow okuyabilir → veri transferi sıfır kopya.

Modern veri bilimi altyapısının temel standardı.

Türk endüstrisinde

  • Bankacılık: Garanti, İş Bankası analitik ekipleri pandas standartı.
  • E-ticaret: Trendyol, Hepsiburada veri ekipleri.
  • Telekom: Turkcell veri ambarı analizi.
  • Devlet: TÜİK ve TCMB Python geçişi pandas'ı içerir.

Sıkça yapılan hatalar

1. Loop kullanımı

# Yanlış:
for i in range(len(df)):
    df.loc[i, 'yeni'] = df.loc[i, 'fiyat'] * 1.18
# Doğru:
df['yeni'] = df['fiyat'] * 1.18

Vectorized 100x hızlı.

2. apply yerine direkt operasyon

apply Python loop'u → yavaş. NumPy/pandas builtin tercih.

3. Bellek yönetimi

Büyük CSV pd.read_csv(..., chunksize=10000) ile parçalı oku.

4. SettingWithCopyWarning görmezden gelme

Veri bozulmasına neden olur. Daima .loc veya .copy().

Eğitim

  • "Python for Data Analysis" (McKinney 2012, 3. baskı 2022) — standart kitap.
  • Kaggle Pandas Course — ücretsiz, interaktif.
  • pandas.pydata.org dokümantasyonu — örnekli, açık.

Kapanış

Pandas, Python veri biliminin omurgasıdır. Mükemmel değil — Polars hızlı, dplyr temiz — ama ekosistem, olgunluk, kullanıcı tabanı sayesinde 2025'te hâlâ standardı.

Bir kuşak veri bilimcinin ilk Python kütüphanesi: import pandas as pd.

Etiketler

pandasPythonveri analiziDataFrameWes McKinney

Kendinizi Test Edin

Cevaplarınız profilinizde istatistik olarak saklanır.

1. Pandas'in mucidi?

2. DataFrame nedir?

3. Modern alternatif?

4. Sıkça yapılan hata?

5. Apache Arrow nedir?