Tarihçesi
Pandas, Python programlama dili için geliştirilen açık kaynaklı bir veri analizi kütüphanesidir. 2008 yılında Wes McKinney tarafından geliştirilmeye başlanmıştır. McKinney, o dönemde finans alanında çalışıyor ve veri analizinde Python’un eksikliklerini fark ediyordu. Bu ihtiyaç üzerine, özellikle zaman serisi verileri ile etkin çalışabilmek için Pandas’ı geliştirdi. Kütüphane ismini "Panel Data" teriminden ve "Python Data Analysis" ifadelerinden alır.
Pandas, 2015 yılında NumFOCUS çatısı altına alınmış ve topluluk katkılarıyla sürekli gelişmektedir. Bugün, veri bilimi ve makine öğrenmesi uygulamalarında temel bir araç haline gelmiştir.
Temel Özellikleri
Pandas’ın en önemli iki temel veri yapısı vardır:
- Series: Tek boyutlu etiketli diziler (numpy array’e benzer).
- DataFrame: İki boyutlu etiketli tablo (satır ve sütunlardan oluşur, Excel ya da SQL tablosuna benzer).
Diğer temel özellikleri
- Hızlı ve esnek veri okuma/yazma (CSV, Excel, SQL, JSON, vs.).
- Eksik verilerle kolay çalışma.
- Veri filtreleme, gruplama, toplulaştırma (groupby).
- Zaman serisi desteği.
- Verilerin dönüştürülmesi (pivot, melt, stack, unstack).
- Güçlü indeksleme yapısı.
Kullanım Alanları
- Veri Analizi ve Görselleştirme
- Makine Öğrenmesi Öncesi Veri Hazırlığı
- Finansal Zaman Serisi Analizi
- İstatistiksel Analizler
- Büyük Veri Uygulamaları (Dask ile birlikte)
- Veri Tabanı Yönetimi (SQL ile etkileşim)
Kurulum
pip install pandas
Temel Kodlarla Pandas Kullanımı
1- İçe Aktarma (Import)
import pandas as pd
2- Series Oluşturma
s = pd.Series([10, 20, 30, 40], index=['a', 'b', 'c', 'd']) print(s)
3- DataFrame Oluşturma
data = { 'Ad': ['Ali', 'Ayşe', 'Mehmet'], 'Yaş': [25, 30, 22], 'Şehir': ['Ankara', 'İstanbul', 'İzmir'] } df = pd.DataFrame(data) print(df)
4- CSV Dosyası Okuma ve Yazma
# Okuma df = pd.read_csv("veri.csv") # Yazma df.to_csv("yeni_veri.csv", index=False)
5- Veri İnceleme
df.head() # İlk 5 satır df.tail(3) # Son 3 satır df.info() # Genel bilgi df.describe() # İstatistiksel özet
6- Veri Seçimi ve Filtreleme
# Sütun seçimi df['Ad'] # Satır seçimi (loc ve iloc ile) df.loc[0] # Etiket ile df.iloc[0] # İndeks ile # Koşullu filtreleme df[df['Yaş'] > 25]
7- Veri Temizleme
df.isnull() # Eksik veri kontrolü df.dropna() # Eksik verileri sil df.fillna(0) # Eksik verileri doldur
8- Yeni Sütun Ekleme / Silme
df['Maaş'] = [5000, 6000, 4500] # Yeni sütun df.drop('Şehir', axis=1, inplace=True) # Sütun silme
9- Gruplama ve Toplama (GroupBy)
df.groupby('Şehir')['Yaş'].mean()
10- Zaman Serisi Analizi
tarih_df = pd.date_range(start='2024-01-01', periods=5, freq='D') veri = pd.Series([10, 12, 15, 20, 18], index=tarih_df) print(veri)
11- Pivot Table
df.pivot_table(values='Maaş', index='Şehir', aggfunc='mean')
Pandas ve Python Ekosistemindeki Yeri
Pandas, Python’un veri bilimi ekosisteminin temel taşlarından biridir. Diğer popüler kütüphanelerle birlikte kusursuz şekilde çalışır:
- NumPy: Pandas, NumPy dizileri üzerine inşa edilmiştir.
- Matplotlib / Seaborn: Görselleştirme için veri hazırlığı sağlar.
- Scikit-learn: Makine öğrenmesi algoritmalarına veri hazırlığı için kullanılır.
- Jupyter Notebook: Pandas ile birlikte interaktif analiz ortamı sunar.
- Dask: Büyük veriler için paralel Pandas işlemleri yapılmasını sağlar.
Avantajları
- Kullanımı kolay ve okunabilir.
- Hızlı veri analizi ve dönüştürme işlemleri.
- Güçlü zaman serisi araçları.
- Büyük topluluk ve sürekli gelişim.
Dezavantajları
- Bellek verimliliği düşüktür; çok büyük verilerde performans sınırlıdır.
- Çok iş parçacıklı işlem desteği sınırlıdır (Dask ile aşılabilir).
Pandas, Python’da veri bilimi alanında çalışan herkesin öğrenmesi gereken temel kütüphanelerden biridir. Hem küçük çaplı projelerde hem de büyük kurumsal veri analizlerinde yaygın olarak kullanılır. Esnek yapısı, geniş özellik yelpazesi ve güçlü topluluğu sayesinde, veri analizi denildiğinde akla gelen ilk araçlardan biri olmuştur.