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 (17)

17
okuyucu bu yazı hakkında yorum yaptı. Siz de deneyiminizi paylaşarak diğer okuyuculara yardımcı olabilirsiniz.
Caner Yılmaz
Caner Yılmaz 30 Temmuz 2026

Harika bir yazı olmuş, pandas ile excele girmek hep gözümü korkutuyodu ama çok sade anlatmışsın. Eline sağlık.

Deniz Aydın
Deniz Aydın 01 Ağustos 2026

Çok teşekkürler Caner, aslında mantığı kavrayınca oldukça keyifli bir süreç. Başarılar!

Selin Kaya
Selin Kaya 31 Temmuz 2026

Çok güzel bir rehber olmuş. Peki binlerce satırlık dosyalarla çalışırken performans sorunu yaşamamak için ne önerirsiniz? Chunksize kullanmak mantıklı mı?

Deniz Aydın
Deniz Aydın 02 Ağustos 2026

Selin hanım, kesinlikle haklısınız. Çok büyük dosyalarda 'chunksize' kullanmak bellek yönetimi açısından hayat kurtarıcı oluyor.

Mert Güler
Mert Güler 02 Ağustos 2026

hocam çok iyi anlatmışsın da pandas'ı kurarken hata alıyorum, bi türlü beceremedim. yardımcı olabilir misin?

Burak Öz
Burak Öz 03 Ağustos 2026

Pip install yaparken yönetici izniyle çalıştırmayı denedin mi? Bende de olmuştu öyle çözdüm.

Zeynep Çelik
Zeynep Çelik 03 Ağustos 2026

Excel dosyalarını birleştirmek üzerine bir yazı da gelir mi? Bu yazıyı çok beğendim, devamını bekliyoruz.

Emre Demir
Emre Demir 03 Ağustos 2026

Abi anlatım çok temiz, eline koluna sağlık. Şirketteki raporları otomatiğe bağlamak için tam aradığım şeydi.

Deniz Aydın
Deniz Aydın 05 Ağustos 2026

Rica ederim Emre, işlerini kolaylaştırabildiysem ne mutlu bana!

Büşra Yıldız
Büşra Yıldız 04 Ağustos 2026

Kod bloklarını kopyalayıp denedim, sorunsuz çalışıyor. Görsellerle desteklemen çok iyi olmuş, takipteyim.

Fatih Aksoy
Fatih Aksoy 04 Ağustos 2026

Açıklayıcı ve net. Gereksiz laf kalabalığı yapmadan direkt konuya girmeniz çok hoşuma gitti.

Deniz Aydın
Deniz Aydın 06 Ağustos 2026

Vakit değerli, direkt uygulamaya yönelik olması en iyisi. Teşekkürler!

Hakan Tekin
Hakan Tekin 05 Ağustos 2026

bişey sorcam, bu yöntemle .xlsx dışındaki formatları da okuyabiliyomuyuz? csv falan gibi?

Ceren Ak
Ceren Ak 06 Ağustos 2026

Evet hakan, pd.read_csv() kullanman gerekiyor, mantık hemen hemen aynı.

Deniz Şahin
Deniz Şahin 05 Ağustos 2026

Excel'de makro yazmaktan kurtuldum resmen. Gerçekten çok teşekkürler Deniz bey, kurtarıcı oldu.

Oğuzhan K.
Oğuzhan K. 05 Ağustos 2026

pandas kütüphanesini ilk defa duydum, baya güçlüymüş. öğrenmeye değer mi sizce?

Deniz Aydın
Deniz Aydın 07 Ağustos 2026

Veriyle azıcık bile uğraşıyorsanız kesinlikle değer, bırakamazsınız zaten.

Yorum Yaz