- Konu sahibi
- #1
Python’da Excel dosyasını okumanın en pratik yolu, tablo verileriyle çalışacaksanız
Komut satırında veya kullandığınız sanal ortamın terminalinde şu komutu çalıştırın:
Örneğin aynı klasörde
Kod çalıştığında
Dosya farklı bir klasördeyse yolu açıkça yazın:
Windows yollarında ters eğik çizgi kullanacaksanız ham metin biçimi de tercih edebilirsiniz:
Tabloyu doğrudan belirli bir çalışma sayfasından okumak için sayfa adını verin:
Sayfa adı dosyada gerçekten bulunmuyorsa hata alırsınız. Emin değilseniz önce dosyadaki sayfa adlarını listeleyebilirsiniz:
Birden fazla sayfayı birlikte okumak için
Excel’de ilk satır sütun başlığı değilse bunu belirtin. Örneğin ilk satırı atlamak için
Sütun adlarında boşluk veya beklenmeyen karakterler varsa önce
Örneğin
Bu kodun sonuç vermesi,
pandas kütüphanesini kullanmaktır. Önce pandas ve Excel motoru olarak openpyxl paketlerini kurun; ardından read_excel() ile dosyayı bir DataFrame içine aktarın. Böylece sayfa adlarını, sütunları ve satırları Python üzerinden inceleyebilir, filtreleyebilir veya başka bir dosyaya kaydedebilirsiniz.Gerekli paketleri kurma
Komut satırında veya kullandığınız sanal ortamın terminalinde şu komutu çalıştırın:
Kod:
pip install pandas openpyxl
pandas, Excel verisini tablo olarak işler. openpyxl ise özellikle .xlsx biçimindeki dosyaların okunmasını sağlar. Kurulumdan sonra Python dosyanızın, okuyacağınız Excel dosyasının bulunduğu klasörde olması yolu belirtmeyi kolaylaştırır; dosya başka bir klasördeyse tam veya göreli dosya yolunu kullanabilirsiniz.Excel dosyasını okumak
Örneğin aynı klasörde
rapor.xlsx adlı bir dosya bulunduğunu varsayalım. Dosyanın ilk çalışma sayfasını okumak için şu kod yeterlidir:
Python:
import pandas as pd
veri = pd.read_excel("rapor.xlsx", engine="openpyxl")
print(veri.head())
print(veri.columns.tolist())
print(veri.shape)
Kod çalıştığında
veri değişkeni Excel sayfasındaki tabloyu tutan bir DataFrame olur. head() ilk beş satırı gösterir; böylece verinin gerçekten okunup okunmadığını ve sütun başlıklarının beklediğiniz gibi gelip gelmediğini kontrol edersiniz. columns.tolist() sütun adlarını, shape ise satır ve sütun sayısını verir.Dosya farklı bir klasördeyse yolu açıkça yazın:
Python:
veri = pd.read_excel(
"C:/projeler/veri/rapor.xlsx",
engine="openpyxl"
)
Windows yollarında ters eğik çizgi kullanacaksanız ham metin biçimi de tercih edebilirsiniz:
Python:
veri = pd.read_excel(r"C:\projeler\veri\rapor.xlsx")
| İhtiyaç | Kullanılacak ifade |
|---|---|
| İlk çalışma sayfası | pd.read_excel("rapor.xlsx") |
| Belirli sayfa adı | sheet_name="Satışlar" |
| Belirli sayfa numarası | sheet_name=1 |
| Tüm sayfaları okumak | sheet_name=None |
Python:
satislar = pd.read_excel(
"rapor.xlsx",
sheet_name="Satışlar",
engine="openpyxl"
)
print(satislar.head())
Sayfa adı dosyada gerçekten bulunmuyorsa hata alırsınız. Emin değilseniz önce dosyadaki sayfa adlarını listeleyebilirsiniz:
Python:
excel = pd.ExcelFile("rapor.xlsx", engine="openpyxl")
print(excel.sheet_names)
Birden fazla sayfayı birlikte okumak için
sheet_name=None kullanılır. Bu durumda sonuç tek bir tablo değil, sayfa adlarını anahtar olarak kullanan bir sözlük olur:
Python:
sayfalar = pd.read_excel(
"rapor.xlsx",
sheet_name=None,
engine="openpyxl"
)
for sayfa_adi, tablo in sayfalar.items():
print(sayfa_adi)
print(tablo.head())
Okunan veriyi kontrol etme ve kullanma
Excel’de ilk satır sütun başlığı değilse bunu belirtin. Örneğin ilk satırı atlamak için
skiprows=1 kullanılabilir:
Python:
veri = pd.read_excel(
"rapor.xlsx",
skiprows=1,
engine="openpyxl"
)
Sütun adlarında boşluk veya beklenmeyen karakterler varsa önce
print(veri.columns.tolist()) çıktısını inceleyin. Sütun adına göre filtreleme yapmadan önce adın gerçekten doğru geldiğini kontrol etmek önemlidir; aksi hâlde sorun Excel’in okunmamasından değil, yanlış sütun adının kullanılmasından kaynaklanır.Örneğin
Tutar sütunu 1000’den büyük satırları seçmek için:
Python:
yuksek_tutar = veri[veri["Tutar"] > 1000]
print(yuksek_tutar)
Bu kodun sonuç vermesi,
Tutar sütununun sayısal olarak okunmuş olduğunu gösterir. Sütunda metin, boş hücre veya para birimi simgesi varsa karşılaştırma hatası alabilirsiniz; önce ilgili sütunun değerlerini ve veri türünü print(veri.dtypes) ile inceleyin.Yaygın hatalar
- FileNotFoundError: Dosya yolu yanlıştır veya Python farklı bir çalışma klasöründen çalışıyordur. Dosya adını, uzantıyı ve çalışma klasörünü kontrol edin.
- Worksheet named... not found: Verdiğiniz sayfa adı Excel dosyasındaki adla aynı değildir.
ExcelFile.sheet_namesçıktısını kullanın. - ImportError veya motor hatası:
openpyxlkurulu değildir; kullandığınız Python ortamındapip install openpyxlkomutunu çalıştırın. - Yanlış başlıklar: Excel’de başlık satırı ilk satırda değilse
skiprowsveya uygun başlık satırı seçeneğini kullanın.
.xls dosyaları .xlsx dosyalarından farklı bir biçimdir ve ayrıca uygun bir Excel okuma motoru gerektirebilir. Dosyayı mümkünse Excel veya LibreOffice ile .xlsx olarak kaydedip yeniden okuyun. Okuma başarılı göründüğünde yalnızca ekrana birkaç satır basılması yeterli kanıt değildir; sütun adlarını, satır sayısını ve önemli sütunların veri türlerini de kontrol edin.