Veri Analizi için Python Kütüphaneleri: Pandas ve NumPy

Veri Analizi için Python Kütüphaneleri: Pandas ve NumPy

Günümüzün veri odaklı dünyasında, veri analizi giderek daha önemli hale geliyor. Büyük veri kümelerini anlamak, eğilimleri belirlemek ve bilinçli kararlar almak için güçlü araçlara ihtiyaç duyuyoruz. İşte bu noktada Python programlama dili ve onun veri analizi için özel olarak tasarlanmış kütüphaneleri devreye giriyor: Pandas ve NumPy.

İçindekiler

Giriş

Bu makalede, Python’daki iki temel veri analizi kütüphanesi olan Pandas ve NumPy’yi ayrıntılı olarak inceleyeceğiz. Her iki kütüphanenin ne olduğunu, temel özelliklerini, nasıl kullanıldıklarını ve birbirleriyle nasıl etkileşimde bulunduklarını öğreneceksiniz. Ayrıca, gerçek dünya senaryolarında bu kütüphanelerin nasıl kullanılabileceğine dair pratik örnekler sunacağız.

Pandas Kütüphanesi

Pandas Nedir?

Pandas, Python programlama dili için geliştirilmiş, yüksek performanslı, kullanımı kolay veri yapıları ve veri analiz araçları sağlayan açık kaynaklı bir kütüphanedir. Özellikle yapılandırılmış verilerle (örneğin, tablolar, elektronik tablolar, SQL veritabanları) çalışmak için tasarlanmıştır. Pandas, veri temizleme, dönüştürme, analiz etme ve görselleştirme süreçlerini kolaylaştırır.

Pandas Veri Yapıları: Seriler ve DataFrame’ler

Pandas’ın temel veri yapıları Seriler (Series) ve DataFrame’lerdir.

  • Seri (Series): Tek boyutlu, etiketli bir dizidir. Bir sütun veriyi temsil eder.
  • DataFrame: İki boyutlu, etiketli bir tablo yapısıdır. Birden fazla sütun (Seri) içerir ve her sütun farklı bir veri tipine sahip olabilir. DataFrame’ler, SQL tablolarına veya Excel elektronik tablolarına benzer.

DataFrame’ler, veri analizi için en yaygın kullanılan veri yapısıdır, çünkü çeşitli veri türlerini barındırabilir ve verileri anlamak ve manipüle etmek için güçlü araçlar sunar.

Pandas ile Veri Okuma ve Yazma

Pandas, çeşitli formatlardaki verileri okuma ve yazma konusunda oldukça yeteneklidir. Yaygın olarak kullanılan formatlardan bazıları şunlardır:

  • CSV (Virgülle Ayrılmış Değerler)
  • Excel
  • SQL veritabanları
  • JSON
  • HTML tabloları

Örneğin, bir CSV dosyasını okumak için pd.read_csv() fonksiyonunu kullanabilirsiniz:

import pandas as pd

data = pd.read_csv('veri.csv')
print(data.head()) # İlk birkaç satırı göster

Benzer şekilde, bir DataFrame’i CSV dosyasına yazmak için data.to_csv() fonksiyonunu kullanabilirsiniz.

Pandas ile Veri Manipulasyonu: Filtreleme, Gruplandırma ve Birleştirme

Pandas, verileri filtrelemek, gruplandırmak ve birleştirmek için çeşitli yöntemler sunar. Bu işlemler, veri analizinin temel adımlarındandır.

  • Filtreleme: Verileri belirli koşullara göre seçmek için kullanılır.
  • Gruplandırma: Verileri belirli bir sütuna göre gruplandırmak ve her grup için özet istatistikler hesaplamak için kullanılır.
  • Birleştirme: İki veya daha fazla DataFrame’i ortak sütunlara göre birleştirmek için kullanılır.

Örneğin, ‘yaş’ sütunu 30’dan büyük olan verileri filtrelemek için:

yasli_veriler = data[data['yaş'] > 30]
print(yasli_veriler)

Cinsiyete göre ortalama yaşı hesaplamak için:

ortalama_yas = data.groupby('cinsiyet')['yaş'].mean()
print(ortalama_yas)

Eksik Veri Yönetimi

Gerçek dünya verileri genellikle eksik değerler içerir. Pandas, eksik verileri (NaN – Not a Number) tespit etmek ve yönetmek için çeşitli araçlar sunar.

  • data.isnull(): Eksik değerleri tespit eder.
  • data.dropna(): Eksik değerleri içeren satırları veya sütunları siler.
  • data.fillna(): Eksik değerleri belirli bir değerle doldurur.

Örneğin, eksik değerleri ortalama yaş ile doldurmak için:

ortalama_yas = data['yaş'].mean()
data['yaş'].fillna(ortalama_yas, inplace=True)

NumPy Kütüphanesi

NumPy Nedir?

NumPy (Numerical Python), Python için bilimsel hesaplama kütüphanesidir. Çok boyutlu diziler (arrays) ve bu diziler üzerinde işlem yapmak için çeşitli fonksiyonlar sağlar. NumPy, özellikle sayısal verilerle çalışırken Pandas’ın temelini oluşturur.

NumPy Dizileri (Arrays)

NumPy dizileri, aynı veri tipine sahip elemanlardan oluşan homojen veri yapılarıdır. Diziler, matematiksel işlemleri vektörel olarak yapmayı mümkün kılar, bu da performansı önemli ölçüde artırır.

Bir NumPy dizisi oluşturmak için np.array() fonksiyonunu kullanabilirsiniz:

import numpy as np

dizi = np.array([1, 2, 3, 4, 5])
print(dizi)

NumPy ile Matematiksel İşlemler

NumPy, diziler üzerinde toplama, çıkarma, çarpma, bölme gibi temel matematiksel işlemleri kolayca yapmayı sağlar. Bu işlemler, her bir elemana ayrı ayrı uygulanır (element-wise operations).

dizi1 = np.array([1, 2, 3])
dizi2 = np.array([4, 5, 6])

toplam = dizi1 + dizi2
print(toplam) # [5 7 9]

Broadcasting

Broadcasting, farklı boyutlardaki diziler üzerinde matematiksel işlemler yapmayı sağlayan bir özelliktir. NumPy, küçük boyutlu diziyi büyük boyutlu diziye otomatik olarak genişleterek (broadcast) işlemi gerçekleştirir.

dizi = np.array([1, 2, 3])
sayı = 5

toplam = dizi + sayı
print(toplam) # [6 7 8]

Lineer Cebir İşlemleri

NumPy, matris çarpımı, determinant hesaplama, ters matris bulma gibi lineer cebir işlemlerini gerçekleştirmek için çeşitli fonksiyonlar sunar.

matris1 = np.array([[1, 2], [3, 4]])
matris2 = np.array([[5, 6], [7, 8]])

carpim = np.matmul(matris1, matris2)
print(carpim)

Pandas ve NumPy Birlikteliği

Pandas ve NumPy, veri analizi için güçlü bir kombinasyon oluşturur. Pandas DataFrame’leri, NumPy dizileri üzerine inşa edilmiştir ve NumPy’nin yüksek performanslı sayısal hesaplama yeteneklerinden faydalanır. Pandas, NumPy dizilerini kullanarak verileri saklar ve manipüle eder.

Örneğin, bir DataFrame’deki bir sütunu NumPy dizisine dönüştürmek için:

import pandas as pd
import numpy as np

data = {'isim': ['Ahmet', 'Ayşe', 'Mehmet'],
        'yaş': [25, 30, 35]}
df = pd.DataFrame(data)

yas_dizisi = df['yaş'].to_numpy()
print(yas_dizisi)

Örneklerle Python Veri Analizi

Şimdi, Pandas ve NumPy’yi kullanarak basit bir veri analizi örneği yapalım. Bir öğrenci notları veri kümesini analiz edeceğiz.

import pandas as pd
import numpy as np

# Veri kümesi oluştur
data = {'isim': ['Ahmet', 'Ayşe', 'Mehmet', 'Fatma', 'Ali'],
        'matematik': [80, 90, 75, 85, 95],
        'fizik': [70, 80, 65, 75, 85],
        'kimya': [60, 70, 55, 65, 75]}
df = pd.DataFrame(data)

# Her öğrencinin ortalama notunu hesapla
df['ortalama'] = df[['matematik', 'fizik', 'kimya']].mean(axis=1)

# En yüksek ortalamaya sahip öğrenciyi bul
en_iyi_ogrenci = df[df['ortalama'] == df['ortalama'].max()]

# Sonuçları yazdır
print(df)
print('\nEn iyi öğrenci:')
print(en_iyi_ogrenci)

Bu örnekte, bir DataFrame oluşturduk, her öğrencinin ortalama notunu hesapladık ve en yüksek ortalamaya sahip öğrenciyi bulduk. Bu, Pandas ve NumPy’nin veri analizinde nasıl kullanılabileceğine dair basit bir örnektir.

Sonuç

Pandas ve NumPy, Python’da veri analizi için vazgeçilmez kütüphanelerdir. Pandas, yapılandırılmış verileri manipüle etmek ve analiz etmek için güçlü araçlar sunarken, NumPy, sayısal hesaplamalar için yüksek performanslı diziler ve fonksiyonlar sağlar. Bu iki kütüphaneyi birlikte kullanarak, karmaşık veri analizi görevlerini kolayca gerçekleştirebilirsiniz. Bu makalede, her iki kütüphanenin temel özelliklerini ve nasıl kullanıldıklarını öğrendiniz. Artık kendi veri analizi projelerinize başlamak için gerekli bilgiye sahipsiniz.

Kaynaklar

Leave A Comment

Your email address will not be published. Required fields are marked *