Web sitemizde size en iyi deneyimi sunmak için çerezleri kullanıyoruz. Hangi çerezleri kullandığımız hakkında daha fazla şey öğrenmek için Gizlilik
Onayla
Türker UZUNTürker UZUN
  • VERİ ANALİZİ
    • Veri Analiz Aşamaları
    • Pandas
    • CRM Analitiği
    • Doğal Dil İşleme (NLP)
    • Makine Öğrenmesi
    • Ölçümleme Problemleri
    • Özellik Mühendisliği
    • Tavsiye Sistemleri
    • BI Araçları
  • METODOLOJİ
  • PROGRAMLAMA
  • BLOG
  • DİZİ & FİLM
  • İLETİŞİM
Reading: Python Veri Depolama Formatları Karşılaştırması: Excel vs. CSV vs. HDF5 vs. JSON vs. Parquet vs. Pickle
Paylaş
Aa
Türker UZUNTürker UZUN
Aa
  • VERİ ANALİZİ
  • METODOLOJİ
  • PROGRAMLAMA
  • BLOG
  • DİZİ & FİLM
  • İLETİŞİM
Ara...
  • VERİ ANALİZİ
    • Veri Analiz Aşamaları
    • Pandas
    • CRM Analitiği
    • Doğal Dil İşleme (NLP)
    • Makine Öğrenmesi
    • Ölçümleme Problemleri
    • Özellik Mühendisliği
    • Tavsiye Sistemleri
    • BI Araçları
  • METODOLOJİ
  • PROGRAMLAMA
  • BLOG
  • DİZİ & FİLM
  • İLETİŞİM
Follow US
Türker UZUN > Blog > Veri Analizi > Python Veri Analizi > Python Veri Depolama Formatları Karşılaştırması: Excel vs. CSV vs. HDF5 vs. JSON vs. Parquet vs. Pickle
Python Veri AnaliziVeri Analizi

Python Veri Depolama Formatları Karşılaştırması: Excel vs. CSV vs. HDF5 vs. JSON vs. Parquet vs. Pickle

4 Min Read
Paylaş
4 Min Read
Python Blog, Python Soruları, Python Dersleri, Python Veri Analizi, Python İlginç Sorular

Giriş: Python, veri analizi ve manipülasyonunda geniş bir format yelpazesi sunar. Ancak, hangi veri depolama formatının seçileceği, projenin özelliklerine ve gereksinimlerine bağlıdır. Bu yazıda, Excel, CSV, HDF5, JSON, Parquet ve Pickle formatlarını boyut, hız ve okunabilirlik açısından analiz edeceğiz.


Excel (.xlsx) Dosyaları:

  • Boyut: Genellikle büyük boyutlara sahip, özellikle büyük veri setleriyle kullanıldığında.
  • Hız: Diğer formatlara göre açma ve işleme süreçleri daha yavaş olabilir.
  • Okunabilirlik: İnsanlar tarafından okunabilir ve düzenlenebilir.

CSV (Comma-Separated Values) Dosyaları:

  • Boyut: Genellikle diğer formatlara göre daha küçük boyutlara sahiptir.
  • Hız: Hızlı açılabilir ve işlenebilir.
  • Okunabilirlik: İnsanlar tarafından okunabilir ve düzenlenebilir.

HDF5 (Hierarchical Data Format version 5) Dosyaları:

  • Boyut: Sıkıştırma ve sütun tabanlı depolama nedeniyle diğer formatlara göre küçük boyutlara sahip olabilir.
  • Hız: Büyük veri setleriyle çalışırken hızlı açılabilir ve işlenebilir.
  • Okunabilirlik: İnsanlar tarafından okunabilir değildir, ancak veri setleri için optimize edilmiştir.

JSON (JavaScript Object Notation) Dosyaları:

  • Boyut: Diğer formatlara göre genellikle daha büyük boyutlara sahiptir.
  • Hız: Açılma ve işlenme süreçleri diğer formatlara göre daha yavaş olabilir.
  • Okunabilirlik: İnsanlar tarafından okunabilir ve düzenlenebilir.

Parquet Dosyaları:

  • Boyut: Sıkıştırma ve sütun tabanlı depolama nedeniyle diğer formatlara göre küçük boyutlara sahip olabilir.
  • Hız: Büyük veri setleriyle çalışırken hızlı açılabilir ve işlenebilir.
  • Okunabilirlik: İnsanlar tarafından okunabilir değildir, ancak veri setleri için optimize edilmiştir.

Pickle (.pkl) Dosyaları:

  • Boyut: Genellikle küçük boyutlara sahiptir ve Python nesnelerini depolamak için kullanılır.
  • Hız: Python’un doğal veri tipini doğrudan depolar, bu nedenle hızlıdır.
  • Okunabilirlik: İnsanlar tarafından okunabilir değildir ve sadece Python’da kullanılabilir.

YÜK TESTİ

Aşağıdaki örnekte, her format için yazma ve okuma süreleri 100.000 satırlık rastgele bir veri kümesi üzerinde ölçülecektir.

import time
import pandas as pd
from faker import Faker

# Faker nesnesini oluştur
fake = Faker()

# Rastgele veri kümesi oluştur
data = {'Name': [fake.name() for _ in range(100000)],
        'Age': [fake.random_int(min=18, max=99, step=1) for _ in range(100000)],
        'City': [fake.city() for _ in range(100000)]}

df = pd.DataFrame(data)

# Excel yazma ve okuma süreleri
start_time = time.time()
df.to_excel('sample_large_excel.xlsx', index=False)
excel_write_time = time.time() - start_time

start_time = time.time()
df_excel = pd.read_excel('sample_large_excel.xlsx')
excel_read_time = time.time() - start_time

# CSV yazma ve okuma süreleri
start_time = time.time()
df.to_csv('sample_large_csv.csv', index=False)
csv_write_time = time.time() - start_time

start_time = time.time()
df_csv = pd.read_csv('sample_large_csv.csv')
csv_read_time = time.time() - start_time

# Parquet yazma ve okuma süreleri
start_time = time.time()
df.to_parquet('sample_large_parquet.parquet', index=False)
parquet_write_time = time.time() - start_time

start_time = time.time()
df_parquet = pd.read_parquet('sample_large_parquet.parquet')
parquet_read_time = time.time() - start_time

# Pickle yazma ve okuma süreleri
start_time = time.time()
df.to_pickle('sample_large_pickle.pkl')
pickle_write_time = time.time() - start_time

start_time = time.time()
df_pickle = pd.read_pickle('sample_large_pickle.pkl')
pickle_read_time = time.time() - start_time

# Sonuçları yazdıralım
print("Excel Yazma Süresi: {:.4f} saniye".format(excel_write_time))
print("Excel Okuma Süresi: {:.4f} saniye".format(excel_read_time))
print("CSV Yazma Süresi: {:.4f} saniye".format(csv_write_time))
print("CSV Okuma Süresi: {:.4f} saniye".format(csv_read_time))
print("Parquet Yazma Süresi: {:.4f} saniye".format(parquet_write_time))
print("Parquet Okuma Süresi: {:.4f} saniye".format(parquet_read_time))
print("Pickle Yazma Süresi: {:.4f} saniye".format(pickle_write_time))
print("Pickle Okuma Süresi: {:.4f} saniye".format(pickle_read_time))

Python’da pandas kütüphanesi üzerinden Excel dosyalarını okuma işlemleri, özellikle büyük dosyalarla çalışırken yavaşlık sorunlarına neden olabilir. Bu durumun birkaç nedeni var:

  1. Dosya Biçimi: Excel dosyalarının .xlsx gibi yeni biçimleri genellikle daha hızlı okunabilirken, eski .xls biçimleri daha yavaş.
  2. Veri Tipi Tanıma: Pandas, her sütunun veri türünü otomatik olarak belirlemeye çalışır. Büyük veri setlerinde bu işlem çok daha uzun.
  3. Bellek Kullanımı: Büyük dosyaların bellekte tutulması, sistem belleği sınırlamalarına takılabilir.
  4. Optimizasyon Sorunları: Pandas’ın belirli durumlar için optimize edilmemiş olabilir.
  5. Diğer İşlemler: Veriyi okuma işlemi, diğer işlemlerle (filtreleme, sıralama, gruplama vb.) birleştirildiğinde daha da yavaşlayabilir.

Gerçek bir veri setinden örnek vermek gerekirse; aşağıdaki örneğimizde 520K satırlı bir excel dosyasını 40 saniyede okurken, pickle formatlı bir dosyayı sadece 0.3 saniyede okuyabildiğimizi gözlemleyebilirsiniz. Tamamen Python üzerinde kullanacak iseniz, ilk okuma sonrasında dosyanızı pickle olarak kaydedip sonra çalışmaya başlamanızı tavsiye ederim.

ETİKETLER: Excel vs Pickle, Pickle Hız Karşılaştırma, Python, Python Dersleri, Veri Analizi, Veri Bilimi, Veri Depolama Formatları
Editor Şubat 1, 2024
Paylaş
Whatsapp Whatsapp LinkedIn Email Copy Link

Son Yazılar

  • Qlik Sense Measure Örnekleri
  • Qlik Sense İleri Seviye Fonksiyon Cheat Sheet & Kullanım Senaryoları
  • Qlik Sense – 100 Temel Fonksiyon
  • Qlik Sense Cheat Sheet (2025)
  • Agile’i Kurum Kültürüne Oturtmak – Eğitim, Koçluk ve Dönüşüm Stratejisi

Takip Et

Sponsor Linkler

İlginizi Çekebilir

BI AraçlarıVeri Analizi

Qlik Sense Measure Örnekleri

BI AraçlarıVeri Analizi

Qlik Sense İleri Seviye Fonksiyon Cheat Sheet & Kullanım Senaryoları

BI AraçlarıVeri Analizi

Qlik Sense – 100 Temel Fonksiyon

BI AraçlarıVeri Analizi

Qlik Sense Cheat Sheet (2025)

Türker UZUNTürker UZUN
Takip Et

Python Veri Analizi Uygulamaları, Makine Öğrenimi, Python Sentiment Analizi, Python NLP Uygulamalar, Web Tasarımı

Removed from reading list

Undo