Pandas, Python’da veri manipülasyonu ve analizi için kullanılan güçlü bir kütüphanedir. Özellikle tablo verileri (DataFrame) ile çalışmayı kolaylaştıran Pandas, veri temizleme, dönüştürme, birleştirme, analiz ve keşif gibi işlemleri gerçekleştirmek için geniş bir araç seti sunar. Pandas, veri bilimi ve makine öğrenimi projelerinde yaygın olarak kullanılır.
1. Pandas Veri Yapıları
Pandas’ın temel veri yapıları Series ve DataFrame‘dir.
a. Series
Series, tek boyutlu bir veri yapısıdır. Genellikle bir veri sütununu temsil eder. Bir Series, bir NumPy dizisi gibi davranır ancak bir dizinle ilişkilendirilir.
Örnek:
import pandas as pd
# Basit bir Series oluşturma
s = pd.Series([10, 20, 30, 40])
print(s)
# İsimlendirilmiş bir Series oluşturma
s_named = pd.Series([10, 20, 30, 40], index=['a', 'b', 'c', 'd'], name="Veri")
print(s_named)
b. DataFrame
DataFrame, iki boyutlu, etiketlenmiş veri yapısıdır ve genellikle bir tablonun satır ve sütunlarını temsil eder. Bir DataFrame, bir veya daha fazla Series’in birleşiminden oluşur.
Örnek:
import pandas as pd
# Sözlükten DataFrame oluşturma
data = {'Ad': ['Ali', 'Ayşe', 'Veli'], 'Yaş': [25, 30, 22], 'Şehir': ['Ankara', 'İstanbul', 'İzmir']}
df = pd.DataFrame(data)
print(df)
# DataFrame'e sütun ekleme
df['Meslek'] = ['Mühendis', 'Doktor', 'Öğretmen']
print(df)
2. Veri Okuma ve Yazma
Pandas, çeşitli veri formatlarını (CSV, Excel, SQL, JSON vb.) okuma ve yazma işlemlerini kolaylaştırır.
a. CSV Dosyaları
Örnek:
# CSV dosyasından veri okuma
df = pd.read_csv('data.csv')
print(df.head()) # İlk 5 satırı gösterme
# DataFrame'i CSV dosyasına yazma
df.to_csv('output.csv', index=False)
b. Excel Dosyaları
Örnek:
# Excel dosyasından veri okuma
df_excel = pd.read_excel('data.xlsx', sheet_name='Sayfa1')
print(df_excel.head())
# DataFrame'i Excel dosyasına yazma
df_excel.to_excel('output.xlsx', sheet_name='Sonuçlar', index=False)
3. DataFrame Temel İşlemleri
Pandas DataFrame’leri üzerinde temel manipülasyon işlemleri gerçekleştirilebilir.
a. Veri İnceleme
Örnek:
# İlk birkaç satırı görüntüleme
print(df.head()) # İlk 5 satır
print(df.tail(3)) # Son 3 satır
# DataFrame hakkında genel bilgi
print(df.info())
# İstatistiksel özet
print(df.describe())
# Sütun isimleri
print(df.columns)
b. Satır ve Sütun Seçimi
Örnek:
# Tek bir sütun seçimi
yaslar = df['Yaş']
print(yaslar)
# Birden fazla sütun seçimi
secilen_sutunlar = df[['Ad', 'Şehir']]
print(secilen_sutunlar)
# Satır seçimi (iloc ile indeksleme)
birinci_satir = df.iloc[0] # İlk satır
print(birinci_satir)
# Belirli bir hücreyi seçme (iloc ile)
hücre = df.iloc[0, 1] # İlk satır, ikinci sütun
print(hücre)
c. Filtreleme ve Koşullu Seçimler
Örnek:
# Belirli bir koşulu sağlayan satırları seçme
df_yas_25_ust = df[df['Yaş'] > 25]
print(df_yas_25_ust)
# Birden fazla koşul ile filtreleme
df_filtresi = df[(df['Yaş'] > 25) & (df['Şehir'] == 'İstanbul')]
print(df_filtresi)
d. Veri Düzenleme ve Dönüştürme
Örnek:
# Sütun ismini değiştirme
df.rename(columns={'Yaş': 'Age'}, inplace=True)
print(df)
# Yeni bir sütun oluşturma (hesaplanmış sütun)
df['Yaş Karesi'] = df['Age'] ** 2
print(df)
# NaN (eksik) değerleri doldurma
df_filled = df.fillna(df.mean())
print(df_filled)
4. Veri Gruplama ve Toplama
Pandas, verileri belirli sütunlara göre gruplamak ve bu gruplar üzerinde toplama işlemleri gerçekleştirmek için güçlü araçlar sunar.
a. Gruplama ve Toplama Fonksiyonları
Örnek:
# Şehire göre gruplama ve yaş ortalaması alma
df_grup = df.groupby('Şehir')['Age'].mean()
print(df_grup)
# Birden fazla toplama fonksiyonu uygulama
df_grup_agg = df.groupby('Şehir').agg({'Age': ['mean', 'max'], 'Yaş Karesi': 'sum'})
print(df_grup_agg)
b. Pivot Tablolar
Pivot tablolar, veri analizini daha esnek hale getirir.
Örnek:
# Pivot tablo oluşturma
pivot_df = df.pivot_table(values='Age', index='Şehir', columns='Meslek', aggfunc='mean')
print(pivot_df)
5. Veri Birleştirme ve Birlikte Kullanım
Pandas, farklı veri setlerini birleştirmek veya birlikte kullanmak için çeşitli yöntemler sunar.
a. DataFrame Birleştirme (Merge)
Örnek:
# İki DataFrame'i birleştirme
data1 = {'ID': [1, 2, 3], 'Ad': ['Ali', 'Ayşe', 'Veli']}
data2 = {'ID': [1, 2, 4], 'Yaş': [25, 30, 22]}
df1 = pd.DataFrame(data1)
df2 = pd.DataFrame(data2)
# Ortak sütuna göre birleştirme
birlesmis_df = pd.merge(df1, df2, on='ID', how='inner')
print(birlesmis_df)
b. DataFrame’leri Yığma (Concatenation)
Örnek:
# İki DataFrame'i alt alta yığma
df_yeni = pd.concat([df1, df2], axis=0, ignore_index=True)
print(df_yeni)
# Yan yana yığma
df_yeni_yatay = pd.concat([df1, df2], axis=1)
print(df_yeni_yatay)
6. Zaman Serileri ile Çalışma
Pandas, zaman serileri verileriyle çalışmak için güçlü araçlar sunar. Bu, veri analizi ve finansal modelleme için yaygın olarak kullanılır.
a. Tarih ve Saat Verileri
Örnek:
# Tarih sütunu oluşturma
df['Tarih'] = pd.date_range(start='2023-01-01', periods=len(df), freq='D')
print(df)
# Zaman serisi indeksi ayarlama
df_zaman = df.set_index('Tarih')
print(df_zaman)
b. Zaman Serisi Operasyonları
Örnek:
# Belirli bir tarih aralığını seçme
df_zaman_aralik = df_zaman['2023-01-01':'2023-01-03']
print(df_zaman_aralik)
# Zaman serisini yeniden örnekleme (resampling)
df_aylik = df_zaman.resample('M').mean() # Aylık ortalamalar
print(df_aylik)
7. Veri Temizleme ve Hazırlama
Veri bilimi projelerinde, veri temizleme ve hazırlama en önemli adımlardan biridir. Pandas, veri temizleme işlemlerini kolaylaştıran birçok araç sunar.
a. Eksik ve Anormal Verileri İşleme
Örnek:
# Eksik verileri doldurma
df_filled = df.fillna(df.median())
# Anormal değerleri tespit etme (örneğin, Z-Score yöntemiyle)
from scipy import stats
df['Z_Skor'] = stats.zscore(df['Age'])
anormal_degerler = df[df['Z_Skor'].abs() > 3]
print(anormal_degerler)
b. Veri Dönüştürme ve Kodlama
Örnek:
# Kategorik verileri sayısal verilere dönüştürme (One-Hot Encoding)
df_encoded = pd.get_dummies(df, columns=['Şehir'])
print(df_encoded)
# Veri normalleştirme
df_normalize = (df['Age'] - df['Age'].min()) / (df['Age'].max() - df['Age'].min())
print(df_normalize)
Pandas, veri manipülasyonu ve analizi için Python‘da en yaygın kullanılan kütüphanelerden biridir. Pandas’ın sunduğu araçlar, veri bilimcilerin büyük veri setlerini kolayca temizlemesine, dönüştürmesine ve analiz etmesine olanak tanır. Pandas ile veri manipülasyonu, veri bilimi projelerinin temel taşlarından biridir ve bu kütüphaneyi iyi bilmek, veri analizi ve makine öğrenimi süreçlerinde büyük avantaj sağlar.
Bir yanıt yazın