Pandas Kütüphanesi: Veri Analizi ve Manipülasyonun Güçlü Aracı

Hatice Özbolat
6 min readAug 10, 2023

Günümüzde veri, iş dünyasının vazgeçilmez bir parçası haline gelmiştir. Her alanda toplanan veriler, işletmelerin kararlarını şekillendirmesine, bilimsel keşiflere ve daha birçok alanda değerli bilgi sağlamasına olanak tanır. Ancak bu verileri anlamlı ve kullanışlı hale getirmek, onları işlemek ve analiz etmek genellikle zorlu bir görev olabilir. İşte bu noktada Pandas kütüphanesi devreye girer.

Pandas logosu

Pandas Nedir?

Pandas, Python programlama dilinde geliştirilen güçlü bir veri analizi ve manipülasyon kütüphanesidir. Adını “panel data” teriminden alır ve özellikle tablo benzeri verileri işlemek için tasarlanmıştır. Pandas, temel olarak iki ana veri yapısı olan Series ve DataFrame’i sunar. Series, tek boyutlu verileri, DataFrame ise çok boyutlu tablo benzeri verileri temsil eder. Bu yapılar, verilerin saklanması, işlenmesi ve analiz edilmesi için güçlü araçlar sunar.

Pandas neden bu kadar önemli?

Python’nın veri bilimi alanında bir diğer önemli kütüphanesi olan Pandas neden bu kadar önemli?

Veri bilimi ile ilgili her eğitimde her blogda ve her kaynak kitapta pandas kütüphanesinin çok önemli derler ama neden? Bu soruyu sorabilecek bir ortamdaysanız “ileri de anlayacaksın” sözünü duyacaksınız. Bu soruya bu cevabı verenlere kızmayın haklılar cidden pandasın içine girdikçe öğreniyorsunuz. Ben önce büyük resmi göreyim sonra detaylara inerim diyenlerdenseniz sizler için pandas neden önemli sorusuna birkaç madde cevap verelim.

1-Veri Yapıları: Pandas, veri depolama ve manipülasyonu için iki temel veri yapısı olan Series ve DataFrame’i sunması. İlerleyen süreçte bol bol Series ve DataFrame bahsedeceğiz.

2- Veri Manipülasyonu: Pandas, verilerin seçilmesi, filtrelenmesi, gruplanması, dönüştürülmesi ve birleştirilmesi gibi bir dizi işlemi kolayca gerçekleştirmenizi sağlar. Bu, veri analizi ve işleme süreçlerini daha hızlı ve daha az kodla yapmanıza olanak tanır.

3-Veri Temizleme:. Pandas, bu tür verilerin temizlenmesini ve düzeltilmesini kolaylaştıran araçlar sunar. Eksik verilerle başa çıkmak, veri analizinde doğru sonuçlara ulaşmak için önemlidir.

4- Veri Analizi ve Görselleştirme: Pandas, istatistiksel hesaplamaları gerçekleştirmek ve verileri görselleştirmek için çeşitli araçlar sunar. Veri analizini daha anlamlı hale getirmek için grafikler, tablolar ve istatistikler oluşturabilirsiniz. Python’nın veri görselleştirme konusunda matplotlib ve seaborn gibi ünlü kütüphaneleri olsa da pandasta içerisinde olması artılarından biridir.

5- Veri Entegrasyonu: Pandas, farklı veri kaynaklarından (CSV dosyaları, Excel dosyaları, veritabanları vb.) veri okuma ve yazma işlemleri için kullanılabilir. Bu, farklı kaynaklardan gelen verileri bir araya getirerek daha kapsamlı analizler yapmanıza yardımcı olabilir.

6- Performans Optimizasyonu: Pandas, vektörleştirilmiş işlemler ve optimize edilmiş veri yapısı kullanımıyla yüksek performanslı veri manipülasyonu sağlar. Bu, büyük veri kümeleriyle çalışırken bile etkili bir şekilde çalışmanıza olanak tanır.

7- Topluluk Desteği ve Dokümantasyon: Pandas, geniş bir kullanıcı topluluğuna sahiptir. Bu topluluk, çeşitli sorunlarınıza çözümler bulmanıza ve daha etkili kod yazmanıza yardımcı olabilir. Ayrıca, kapsamlı ve kullanıcı dostu bir dokümantasyonu vardır.

Pandas Veri Yapıları ve Veri Tipleri

Veri tipi, verilerinizin Python’un verilerinizi nasıl işleyeceğini, kullanacağını veya depolayacağını belirleyen içsel bir yapı gibidir. Veri analizi yaparken, hatalardan kaçınmak için doğru veri tiplerini kullanmak önemlidir. Pandas genellikle veri tiplerini doğru bir şekilde çıkarır, ancak bazen veriyi açıkça dönüştürmemiz gerekebilir. Şimdi Pandas’ta mevcut olan veri tiplerini, aynı zamanda “dtypes” olarak adlandırılan bu veri tiplerini inceleyelim.

  • object: Metin veya karışık sayısal veya sayısal olmayan değerler
  • int64: Tamsayı (integer) değerler
  • bool: Doğru/Yanlış (true/false) değerleri
  • float64: Ondalık (floating point) sayılar
  • category: Sınırlı bir liste içeren metin değerleri
  • datetime64: Tarih ve saat değerleri
  • timedelta[ns]: İki tarih arasındaki farklar

Bir veri yapısı, verilerimizi belirli bir şekilde düzenleme yöntemidir. Pandas’ın iki veri yapısı vardır ve tüm işlemler bu iki nesneye dayanmaktadır:

  • Series (Seriler): Bu, sütunları temsil eden bir çizelge olarak düşünülebilir, ve DataFrame, Seriler koleksiyonundan oluşan bir tabloya benzetilebilir. Serileri, her türden veriyi depolayabilen 2B bir dizinin tek sütunu olarak en iyi şekilde tanımlayabiliriz.
  • DataFrame (Veri Çerçevesi): Bu, çok sayıda sütun ve satır içeren bir tablo olarak düşünülebilir. Her bir değer, bir Satır İndeksi ve Bir Sütun İndeksi ile ilişkilendirilir.

Bu yapılar, verilerinizi depolama ve düzenleme konusunda size büyük esneklik sağlar. Seriler ve DataFrame’ler sayesinde, veri analizi ve manipülasyonu işlemlerini daha kolay ve anlamlı bir şekilde gerçekleştirebilirsiniz.

Hadi öylese Pandas kütüphanesi içerisinde bulunan bazı temel fonksiyonları incelemeye başlayalım.

Veri Oluşturma ve Okuma Fonksiyonları:

  • pd.Series(): Tek boyutlu bir Series veri yapısı oluşturur.
  • pd.DataFrame(): Çok boyutlu bir DataFrame veri yapısı oluşturur.
  • pd.read_csv(): CSV dosyasından veriyi okur ve DataFrame'e dönüştürür.
  • pd.read_excel(): Excel dosyasından veriyi okur.
  • pd.read_sql(): Veritabanından veriyi okur.
import pandas as pd  # Pandas Kütüphanesini kullanmak için dizine ekliyoruz.

# Series oluşturma
s = pd.Series([10, 20, 30, 40, 50])

# DataFrame oluşturma
data = {'Name': ['Alice', 'Bob', 'Charlie'],
'Age': [25, 30, 22]}
df = pd.DataFrame(data)

# CSV dosyasından veri okuma
csv_data = pd.read_csv('data.csv')

# Excel dosyasından veri okuma
excel_data = pd.read_excel('data.xlsx')

Veri Gözlemleme Fonksiyonları:

  • head(), tail(): DataFrame'in ilk veya son birkaç satırını gösterir.
  • info(): DataFrame hakkında bilgi, sütun türleri ve eksik değer sayıları gibi detayları görüntüler.
  • describe(): Sayısal sütunlar için temel istatistiksel bilgileri gösterir.
# İlk 5 satırı gösterme
first_rows = df.head()

# Son 3 satırı gösterme
last_rows = df.tail(3)

# DataFrame hakkında bilgi
df_info = df.info()

# Sayısal sütunların istatistiksel bilgileri
df_describe = df.describe()

Veri Seçme ve Filtreleme Fonksiyonları:

  • loc[]: Etiket veya boolean indeksleme kullanarak veriyi seçer.
  • iloc[]: Konum indeksleme kullanarak veriyi seçer.
  • isin(): Belirli değerlere sahip satırları filtreler.
# 'Age' sütununu seçme
ages = df['Age']

# 25 yaşından büyük olan satırları seçme
above_25 = df[df['Age'] > 25]

# Belirli sütunları seçme
selected_columns = df[['Name', 'Age']]

# İndeks etiketine göre veri seçimi
selected_row = df.loc[2] # 2. satırı seçer

# Belirli satır ve sütunları seçme
selected_data = df.loc[1:3, 'Name':'Age'] # 1-3 satırları ve 'Name' ile 'Age' sütunlarını seçer

# Konum indeksine göre veri seçimi
selected_row = df.iloc[2] # 3. satırı seçer

# Belirli satır ve sütunları seçme
selected_data = df.iloc[1:3, 0:2] # 1-2 satırları ve 1-2 sütunları seçer

# 'City' sütununda 'New York' veya 'Los Angeles' olan satırları seçme
selected_cities = df[df['City'].isin(['New York', 'Los Angeles'])]

Veri Düzenleme Fonksiyonları:

  • drop(): Belirli satır veya sütunları çıkarır.
  • fillna(): Eksik değerleri belirli bir değerle doldurur.
  • replace(): Belirli değerleri başka değerlerle değiştirir.
# Belirli sütunu çıkarma
df_removed = df.drop('Age', axis=1)

# Eksik değerleri doldurma
df_filled = df.fillna(0)

# Belirli değerleri değiştirme
df_replaced = df.replace('Alice', 'Alicia')

Gruplama ve Agregasyon Fonksiyonları:

  • groupby(): Veriyi belirli bir sütuna göre gruplar.
  • agg(), sum(), mean(), min(), max(): Gruplanmış veri üzerinde istatistiksel işlemler yapar.
# 'Age' sütununa göre gruplama ve ortalama yaş hesaplama
avg_age_by_name = df.groupby('Name')['Age'].mean()

# Birden fazla istatistiksel işlemi aynı anda uygulama
aggregation = df.groupby('Name')['Age'].agg(['mean', 'min', 'max'])

Veri Birleştirme ve Birleşim Fonksiyonları:

  • merge(), join(): Farklı DataFrame'leri birleştirir.
  • concat(): DataFrame'leri birleştirir veya üst üste ekler.
# İki DataFrame'i birleştirme
merged_df = pd.merge(df1, df2, on='key')

# DataFrame'leri üst üste ekleme
concatenated_df = pd.concat([df1, df2])

Sıralama Fonksiyonları:

  • sort_values(): Belirli bir sütuna göre veriyi sıralar.
  • sort_index(): Indeks sırasına göre veriyi sıralar.
# 'Age' sütununa göre sıralama
sorted_df = df.sort_values('Age')

# Indekse göre sıralama
sorted_by_index = df.sort_index()

Veri Görselleştirme Fonksiyonları:

  • plot(): Grafikler oluşturur (çizgi, çubuk, pasta vb.).
  • hist(): Histogram çizimi yapar.
  • scatter(): Nokta grafiği çizimi yapar.
# Çizgi grafiği çizimi
df.plot(kind='line', x='X', y='Y')

# Histogram çizimi
df['Age'].plot(kind='hist')

# Nokta grafiği çizimi
df.plot(kind='scatter', x='X', y='Y')

Veri Kaydetme Fonksiyonları:

  • to_csv(): Veriyi CSV dosyasına kaydeder.
  • to_excel(): Veriyi Excel dosyasına kaydeder.
# DataFrame'i CSV dosyasına kaydetme
df.to_csv('data.csv', index=False)

# DataFrame'i Excel dosyasına kaydetme
df.to_excel('data.xlsx', index=False)

Bu sadece temel ve yaygın olarak kullanılan Pandas fonksiyonlarının birkaç örneğidir. Pandas belgesinden daha fazla fonksiyon ve ayrıntı hakkında daha fazla bilgi edinebilirsiniz.

Sonuç

Pandas kütüphanesi, Python tabanlı veri analizi ve manipülasyon işlemlerini büyük ölçüde kolaylaştıran güçlü bir araçtır. Veri bilimcileri, analistler ve işletme uzmanları için vazgeçilmez bir yardımcıdır. Temizleme, analiz ve görselleştirme gibi veri işleme görevlerini etkili bir şekilde gerçekleştirmek isteyen herkes için Pandas, veri odaklı projelerde başarıya giden yolda önemli bir adımdır.

Kaynakça:

Eğer Python’nın veri bilimi için önemli olan NumPy küyüphanesi için detaylı bilgi almak isterseniz : https://medium.com/@haticeozbolat17/nedir-bu-numpy-89bb815c6168

Yazımı buraya kadar okuduysan ve benzeri içerikler paylaşmamı istiyorsan beğenmeyi ve yorum bırakmayı unutmayın ✨😍

--

--