• Yapay zeka soru ve sorunlarınızı uygun olan kategorilere açıp yanıt alabilirsiniz...

Pandas read_csv ile veri okunurken hangi alanlar kontrol edilir?

Garfield

Yönetici
YZF Admin
Yaş
40
Konum
YurtDışı
Katılım
27 Eki 2026
Konular
488
Mesajlar
501
AI Seviyesi
Yeni
pd.read_csv() ile veri okurken yalnızca dosyanın açılıp açılmadığı değil, verinin sütunlara doğru ayrılıp ayrılmadığı, karakter kodlaması, eksik değerleri, sütun türleri, tarih alanları ve satır yapısı kontrol edilir. En güvenli yaklaşım önce küçük bir örnek okumak, ardından sütun adlarını ve türlerini incelemek, beklenmeyen sonuç varsa ayırıcı, kodlama ve tırnak ayarlarını düzeltmektir. Böylece dosya teknik olarak okunmuş olsa bile yanlış sütunlara bölünmüş veya yanlış türde yorumlanmış veriyi fark edebilirsiniz.

Kontrol edilmesi gereken temel alanlar​


Dosya kaynağı ve başlık satırı​


Önce okunan yolun gerçekten beklenen CSV dosyasını gösterdiğini ve ilk satırın sütun başlığı olup olmadığını kontrol edin. Dosyada başlık varsa header=0 veya varsayılan başlık çıkarımı kullanılabilir. Başlık yoksa header=None verin; gerekirse names=["Tarih", "Ürün", "Adet", "Tutar"] gibi dosyadaki alanlara uygun sütun adları belirtin. Aksi durumda ilk veri satırı sütun adı sayılarak kayıt sayısı eksik kalabilir.

Ayırıcı, kodlama ve tırnak işaretleri​


CSV dosyaları her zaman virgülle ayrılmaz; noktalı virgül, sekme veya başka bir ayırıcı kullanılabilir. Alan içinde ayırıcı geçtiğinde tırnak işaretleri ve kaçış karakterleri de satırın nasıl çözümleneceğini etkiler. Python’un CSV açıklamalarında ayırıcı, tırnak ve kaçış karakterlerinin dosya biçiminin temel parçaları olduğu belirtilir.

Türkçe karakterler bozuk görünüyorsa encoding değerini, tüm veri tek sütunda görünüyorsa sep veya delimiter değerini, sütunlar beklenmedik biçimde bölünüyorsa quotechar ve escapechar değerlerini inceleyin.

Eksik değerler ve sütun türleri​


Boş hücrelerin gerçekten eksik değer olarak mı, yoksa NA, N/A, - veya boş metin olarak mı tutulduğu kontrol edilmelidir. Sayısal görünen bir sütunun metin olarak okunması; ondalık ayırıcı, binlik ayırıcı, para simgesi veya karışık değerlerden kaynaklanabilir.

Tarih sütunları için de yalnızca sütun adını değil, okuma sonrasındaki türü kontrol edin. Tarih alanı metin olarak kalmışsa tarih sıralaması kronolojik değil alfabetik yapılabilir. parse_dates kullanmak dönüşüm için yardımcı olur, ancak hatalı veya farklı biçimlerdeki tarihleri otomatik olarak anlamlı bir tarihe dönüştürmez.

Satır yapısı, dizin ve veri kapsamı​


Her satırın beklenen sayıda alana sahip olup olmadığı, dosyanın başında gereksiz açıklama satırı bulunup bulunmadığı ve dosyada kaç satır okunacağı da kontrol edilir. index_col ile bir sütun dizin yapılacaksa bunun gerçekten benzersiz veya anlamlı bir kimlik alanı olduğundan emin olun. usecols, nrows veya skiprows kullanılması verinin yalnızca bir bölümünü okur; bu ayarlar performans için yararlı olsa da sonuçta tüm dosyanın işlendiği anlamına gelmez.

Aşağıdaki tablo, sorun görüldüğünde hangi ayarın önce inceleneceğini ayırır.
Kontrol alanıBelirtiİncelenecek ayar
Sütunlara ayırmaTüm veri tek sütunda veya fazla sütunda görünürsep, delimiter
Karakter kodlamasıTürkçe karakterler bozuk veya okuma hatası oluşurencoding
Başlıkİlk kayıt kaybolur veya sütun adları yanlış olurheader, names
Eksik değerBoş veya özel işaretli hücreler metin kalırna_values, keep_default_na
Sütun türüSayısal veya tarih alanları metin olarak kalırdtype, parse_dates
Satır biçimiBazı satırlarda alan sayısı farklıdırTırnak, ayırıcı ve hatalı satır ayarları
Tablo yalnızca ayar adlarını gösterir; doğru değerler dosyanın gerçek biçiminden çıkarılmalıdır. Örneğin Excel’den noktalı virgülle dışa aktarılmış ve UTF-8 kodlanmış varsayımsal bir dosya için başlangıç okuması şöyle yapılabilir:

Python:
import pandas as pd

veri = pd.read_csv(
    "satislar.csv",
    sep=";",
    encoding="utf-8",
    header=0,
    parse_dates=["Tarih"],
    na_values=["", "NA", "Yok"]
)

print(veri.head())
print(veri.columns.tolist())
print(veri.dtypes)
print(veri.isna().sum())
print(veri.shape)

Okuma sonucunu doğrulama sırası​


Dosyayı doğrudan büyük bir veri kümesi olarak kullanmadan önce aşağıdaki kontrolleri yapın:
  1. Dosyayı küçük bir örnekle okuyun. Önce nrows=5 veya nrows=10 kullanarak başlıkların ve ilk kayıtların beklediğiniz gibi görünüp görünmediğini kontrol edin.
  2. Sütun adlarını inceleyin. veri.columns.tolist() çıktısında gereksiz boşluk, yanlış karakter veya beklenmeyen tek sütun görünüyorsa başlık ya da ayırıcı ayarını düzeltin.
  3. İlk satırları ve veri boyutunu kontrol edin. veri.head() ile değerleri, veri.shape ile satır ve sütun sayısını karşılaştırın. Beklenenden tek sütun çıkması genellikle ayırıcının yanlış olduğunu gösterir.
  4. Sütun türlerini doğrulayın. veri.dtypes çıktısında miktar alanlarının sayısal, tarih alanlarının tarih türünde ve kimlik alanlarının gerekirse metin türünde olduğunu kontrol edin.
  5. Eksik değerleri sayın. veri.isna().sum() çıktısı, eksik değerlerin hangi sütunlarda toplandığını gösterir; ancak eksik görünmeyen boş metinler ayrıca unique() veya filtreleme ile incelenmelidir.
  6. Beklenmeyen sonucu kaynağıyla karşılaştırın. Satır sayısı, sütun sayısı veya örnek değerler kaynak dosyayla uyuşmuyorsa analiz yapmadan önce sep, encoding, header, na_values ve tarih ayarlarını yeniden değerlendirin.

Okunmuş olması doğru okunmuş olduğu anlamına gelmez​


read_csv() hata vermeden bir tablo döndürse bile bu, verinin doğru yorumlandığını kanıtlamaz. Örneğin yanlış ayırıcı seçildiğinde dosya tek sütunlu bir tablo olarak başarıyla okunabilir; sayıların metin türünde olması da her zaman okuma hatası oluşturmaz. Bu nedenle en azından head(), columns, dtypes, shape ve eksik değer sayımlarını birlikte kontrol edin.

Sorunun kaynağı dosya biçimindeyse kodu değiştirmeden önce CSV’nin ilk birkaç satırını düz metin olarak inceleyin. Orada kullanılan gerçek ayırıcıyı, başlık durumunu, tırnakları, kodlamayı ve eksik değer gösterimini belirledikten sonra yalnızca gerekli read_csv() seçeneklerini ekleyin. Böylece yanlış okunan veriyi sonradan düzeltmeye çalışmak yerine hatayı veri içeriği okunurken yakalarsınız.
 
Son düzenleme:

Sen de şimdi bize katılmak ister misin?

Kayıt ol

Bize katılım kolay ve ücretsizdir!

Konuyu görüntüleyenler

Bu konuyu şu anda görüntüleyen üye bulunmuyor.
Geri
Üst