Python İle Excel Dosyası Veri İşleme Nasıl Yapılır?

Python İle Excel Dosyası Veri İşleme Nasıl Yapılır?
Python İle Excel Dosyası Veri İşleme Nasıl Yapılır?

Gereksinimler ve Ön Hazırlık

Çalışmaya başlamadan önce bilgisayarınızda Python 3.10 veya daha yeni bir sürümün yüklü olduğundan emin olmalısınız. Excel dosyalarını işlemek için en yaygın kullanılan kütüphaneler Pandas ve Openpyxl'dir. Bu araçları kurmak için terminal veya komut satırınıza aşağıdaki komutu yazmanız yeterlidir.

pip install pandas openpyxl

Bu komut, veri manipülasyonu için Pandas kütüphanesini ve Excel dosyalarıyla derinlemesine etkileşim kurmak için Openpyxl motorunu sisteminize dahil edecektir. Kurulumun başarıyla tamamlandığını doğrulamak için Python terminalinde import pandas as pd komutunu çalıştırabilirsiniz.

Excel Dosyasını Okuma ve İlk Bakış

Veri işleme sürecinin ilk adımı, Excel dosyasını Python ortamına aktarmaktır. Pandas kütüphanesi, read_excel fonksiyonu ile bu işlemi oldukça kolaylaştırır. Aşağıdaki örnekte, mevcut dizindeki bir Excel dosyasının nasıl yükleneceğini ve ilk beş satırın nasıl görüntüleneceğini görebilirsiniz.

import pandas as pd

# Excel dosyasını yükleme
dosya_yolu = "veriler.xlsx"
df = pd.read_excel(dosya_yolu, sheet_name="Sayfa1")

# İlk 5 satırı görüntüleme
print(df.head())

Burada df (DataFrame), Excel verilerinin Python'daki tablo temsilidir. head() metodu, verinin yapısını hızlıca incelemenize yardımcı olur. Eğer dosyanızda birden fazla sayfa varsa, sheet_name parametresini kullanarak istediğiniz sayfayı belirtebilirsiniz.

Veri Filtreleme ve Seçme İşlemleri

Excel'deki verilerin tamamı her zaman gerekli olmayabilir. Belirli kriterlere göre veri seçmek, analiz sürecini hızlandırır. Örneğin, belirli bir sütundaki değeri yüksek olan satırları ayıklamak için koşullu filtreleme kullanırız.

# 'Satis_Miktari' sütunu 100'den büyük olanları filtreleme
yuksek_satislar = df[df['Satis_Miktari'] > 100]

# Sadece belirli sütunları seçme
ozet_veri = yuksek_satislar[['Urun_Adi', 'Satis_Miktari']]

print(ozet_veri)

Bu kod bloğu, büyük bir veri setinden sadece işinize yarayan alt kümeyi almanızı sağlar. df['Sütun_Adı'] yapısı, Excel'deki sütun başlıklarına erişmek için kullanılır.

Excel Dosyasında Veri Güncelleme ve Düzenleme

Verileri işledikten sonra, bazı hücre değerlerini değiştirmek veya yeni hesaplanmış sütunlar eklemek isteyebilirsiniz. Python ile bu işlemler oldukça pratiktir. Örneğin, bir ürünün fiyatına KDV ekleyerek yeni bir sütun oluşturalım.

# Yeni bir sütun oluşturma (Fiyat * 1.20)
df['KDVli_Fiyat'] = df['Birim_Fiyat'] * 1.20

# Belirli bir hücreyi güncelleme (Örn: 0. satır, 'Durum' sütunu)
df.at[0, 'Durum'] = 'Tamamlandı'

print(df.head())

at metodu, belirli bir satır ve sütun kesişimindeki veriyi doğrudan düzenlemenize olanak tanır. Bu yöntem, Excel'deki "Bul ve Değiştir" işlevinin programatik karşılığıdır.

Excel Dosyası Veri İşleme Yöntemleri Karşılaştırması

Yöntem Avantajı Dezavantajı
Pandas Hızlı, büyük veriler için ideal Biçimlendirme (renk, font) zayıf
Openpyxl Excel hücre biçimlendirme tam kontrol Büyük dosyalarda yavaş
XlsxWriter Gelişmiş grafik ve rapor oluşturma Sadece dosya yazabilir, okuyamaz

Verileri Excel Olarak Kaydetme

İşlediğiniz verileri analiz ettikten sonra, bunları yeni bir Excel dosyası olarak kaydetmek isteyebilirsiniz. to_excel fonksiyonu, DataFrame nesnesini kolayca dosya sistemine yazar.

# Veriyi yeni bir Excel dosyasına kaydetme
# index=False, satır numaralarının kaydedilmesini engeller
df.to_excel("islenmis_veriler.xlsx", index=False)

print("Dosya başarıyla kaydedildi.")

Dosyayı kaydederken index=False parametresini kullanmak, Excel dosyanızın temiz görünmesini sağlar. Aksi takdirde, her satırın başında Python'ın otomatik atadığı indeks numaraları görünecektir.

Kritik Güvenlik Uyarısı: Kullanıcıdan alınan dosyaları işlerken her zaman dosya uzantısını ve içeriğini kontrol edin. Rastgele indirilen Excel dosyaları makro içerebilir. Üretim ortamında (production) çalışırken, dosya yollarını sabit kodlamak yerine çevresel değişkenler (environment variables) kullanın.

Sıkça Sorulan Sorular

Python ile çok büyük Excel dosyalarını işleyebilir miyim?

Evet, Pandas oldukça verimlidir. Ancak dosya boyutu RAM kapasitenizi aşıyorsa, chunksize parametresini kullanarak veriyi parçalar halinde okuyabilirsiniz.

Excel'deki formülleri Python ile çalıştırabilir miyim?

Pandas, Excel formüllerini doğrudan çalıştırmaz; veriyi hesaplar. Eğer Excel'in kendi formüllerini korumak istiyorsanız openpyxl kütüphanesini kullanmalısınız.

Farklı Excel dosyalarını nasıl birleştirebilirim?

pd.concat() fonksiyonu ile aynı yapıdaki birden fazla DataFrame nesnesini alt alta veya yan yana ekleyebilirsiniz.

Excel'deki tarih formatı hatalı gelirse ne yapmalıyım?

pd.to_datetime() fonksiyonu ile sütunu tarih formatına dönüştürerek format hatalarını giderebilirsiniz.

Kodlarım neden hata veriyor?

Genellikle dosya yolunun yanlış olması veya Excel dosyasının o anda açık olması (dosya kilitli hatası) en yaygın sorunlardır. Dosyanın kapalı olduğundan emin olun.

Kod Güvenliği Sorumluluk Reddi: Bu makaledeki kod örnekleri eğitim amaçlıdır. Yazılım projelerinizde veritabanı bağlantıları veya dosya işlemleri yaparken, girdi temizleme (input sanitization) ve hata yakalama (try-except) bloklarını mutlaka kullanın. Hatalı dosya işleme süreçleri veri kaybına yol açabilir.

Pandas ile Büyük Veri Setlerinde Performans Optimizasyonu

Excel dosyaları büyüdükçe, standart okuma yöntemleri bellek (RAM) üzerinde ciddi bir yük oluşturabilir. Pandas, varsayılan olarak tüm veriyi belleğe yükler. Ancak, milyonlarca satırlık verilerle çalışırken chunksize parametresini kullanarak veriyi parçalar halinde işlemek, sistemin çökmesini engeller ve bellek kullanımını optimize eder.

Aşağıdaki örnekte, büyük bir Excel dosyasını 10.000 satırlık parçalar halinde okuyarak işlemeyi görebilirsiniz:

import pandas as pd

# Büyük dosyayı parçalar halinde okuma
chunk_size = 10000
file_path = 'buyuk_veri.xlsx'

for chunk in pd.read_excel(file_path, chunksize=chunk_size):
    # Her bir parça üzerinde işlem yap
    filtered_chunk = chunk[chunk['Satis_Miktari'] > 500]
    
    # İşlenen parçayı ayrı bir dosyaya ekle (append modu)
    filtered_chunk.to_csv('filtrelenmis_veri.csv', mode='a', index=False, header=False)

Ayrıca, veri tiplerini optimize etmek de performansı artırır. Örneğin, int64 yerine int32 veya float32 kullanmak, dosya boyutuna bağlı olarak bellek kullanımını %50'ye kadar azaltabilir.

Alternatif Kütüphaneler: Openpyxl ve XlsxWriter ile İleri Düzey Biçimlendirme

Pandas, veri analizi için mükemmeldir ancak Excel dosyasına grafik eklemek, hücreleri renklendirmek veya özel kenarlıklar oluşturmak gibi görsel düzenlemeler için openpyxl veya xlsxwriter kütüphaneleri daha esnektir. Pandas'ın ExcelWriter motorunu kullanarak bu kütüphanelerin özelliklerine erişebilirsiniz.

Aşağıdaki kod örneği, bir Excel hücresine nasıl özel bir format (renklendirme) uygulanacağını göstermektedir:

import pandas as pd

df = pd.DataFrame({'Departman': ['IT', 'IK', 'Satis'], 'Performans': [95, 80, 88]})

# ExcelWriter ile dosyayı oluştur
with pd.ExcelWriter('rapor.xlsx', engine='xlsxwriter') as writer:
    df.to_excel(writer, sheet_name='Veriler', index=False)
    
    # Çalışma kitabına ve sayfaya erişim
    workbook  = writer.book
    worksheet = writer.sheets['Veriler']
    
    # Format tanımlama
    format_red = workbook.add_format({'bg_color': '#FFC7CE', 'font_color': '#9C0006'})
    
    # Belirli bir koşula göre hücreyi biçimlendirme
    worksheet.conditional_format('B2:B4', {
        'type': 'cell',
        'criteria': '


Sonuç

Python ile Excel dosyası veri işleme, veri odaklı projelerinizde size büyük bir hız kazandıracaktır. Pandas kütüphanesi ile verileri temizlemeyi, düzenlemeyi ve analiz etmeyi öğrendiniz. Bir sonraki adım olarak, işlediğiniz verileri görselleştirmek için Matplotlib veya Seaborn kütüphanelerini inceleyebilir, raporlarınızı otomatik olarak PDF formatında oluşturmayı deneyebilirsiniz. Sürekli pratik yaparak, karmaşık veri setlerini saniyeler içinde yönetebilecek seviyeye gelebilirsiniz.

Bu yazıya tepkinizi paylaşın:
Deniz Aydın

On yıllık yaşam tarzı editörlüğü deneyimimle karmaşık süreçleri herkesin anlayabileceği basit adımlara dönüştürüyorum. Okuyucuların günlük yaşam kalitesini artıracak uygulanabilir çözümler üretmeye odaklanıyorum.

Yorumlar (0)

Yorum Yaz