Veri Analizi ve Görselleştirme #03 | Veri Okuma ve Temizleme: read_csv, Eksik Değer, Tekrar ve Tür
Veri Okuma ve TemizlemeEğitmen: Dr. Süleyman Burak ÇELİK
Soru: bir kafenin Moda ve Kadıköy şubelerinin 12 satırlık kirli satış kaydında ('?' ve 'yok' işaretleri, farklı yazılmış şube adları, metin olarak okunan adet) adedi sayıya çevrilemeyen ve tekrar eden satırlar atılınca kaç satır kalır? Kadıköy şubesinde satır başına ortalama adet kaç? Temizliğin sırasını gerçek kodla kuruyoruz. Bu derste: - read_csv ve ayırıcı: virgülle okuma ParserError verir (Expected 1 fields in line 6, saw 2); sep=';' ile 12 satır, 5 sütun - info ile ilk bakış: istasyon, gün, sıcaklık 11, nem 8 dolu; sıcaklık ve nem metin (str) okunmuş - na_values ile '?' ve 'yok' NaN olur; isna().sum(): 1, 1, 3, 5, 1 (toplam 11 eksik) - Okuma seçenekleri: header=None, nrows, usecols; read_excel aynı mantıkla - dropna'nın dört biçimi: parametresiz 6, how='all' 11, subset 9, thresh=4 ile 10 satır kalır - fillna'nın bedeli: nem ortalaması 46 (322 / 7); sıfırla doldurunca 29,27; ortalamayla doldurunca standart sapma 11,9'dan 9,2'ye daralır; medyan 42 - duplicated ve drop_duplicates: 1 tekrar satır (indeks 7), 11 satır 10'a iner - Tür dönüşümü: to_numeric(errors='coerce') eksikleri 2'den 3'e çıkarır ('18,5' yutulur); str.replace + astype ile kayıpsız: eksik 2, değer 18,5 sayı olur; gün int64 - Yazım temizliği: strip ve lower ile 7 farklı yazım 4'e iner (ankara 4, bursa 3, konya 2, ankra 1); replace ile 3 (ankara 5) - map ile sözlükten eşleme: G, B, Y kodları güneşli, bulutlu, yağmurlu olur - pd.cut ile sınıflama: (0, 12, 15, 20] sınırlarıyla sıcak 4, ılık 3, serin 1 ölçüm - Palmer Penguins CSV'si: (344, 8), sex sütununda 11 eksik; dropna 333 satır, subset ile yalnız kütleye bakınca 342 - Çözümlü örnek (kafe): (12, 4), adet metin, şube 5 yazımla geçer (temizlenince moda 7, kadıköy 5); adet NaN 3; tekrar 2, 10 satır; dropna() 6 bırakır (yanlış), subset ile 7 satır kalır (a); Kadıköy 49 / 4 = 12,25 adet (b) - Varyant: cinsiyeti 'bilinmiyor' diye işaretle (168, 165, 11); kütleyi hafif / orta / ağır diye kes: 78, 149, 115 - Dört tuzak: sonucu atamamak (12 satır kalır), inplace zinciri (ChainedAssignmentError, nemde 4 NaN kalır), NaN varken astype(int) (IntCastingNaNError), doldurmanın daralttığı yayılım Bölümler: 0:00 Giriş: Kirli Ham Kayıt 0:43 Temizlik Hattı ve Kaynak Kitap 1:07 read_csv ve Ayırıcı 1:53 info ile İlk Bakış 2:27 na_values ve isna 3:05 Okuma Seçenekleri 3:39 dropna: Dört Biçim 4:20 Sıfırla Doldurmanın Bedeli 4:51 Ortalama, Medyan ve Std 5:24 Tekrar Satırlar 5:57 Tür Dönüşümü: to_numeric ve astype 6:42 Yazım Temizliği: strip, lower 7:18 replace ve map 7:53 pd.cut ile Sınıflama 8:26 Penguen CSV'sinde Eksikler 8:59 Örnek 1: Kafe Kaydı 9:33 Oku ve Metni Düzelt 10:06 Türü Düzelt 10:35 Tekrar ve Eksik: Kaç Satır Kalır? 11:10 Kadıköy Ortalaması 11:38 Örnek 2: Penguen Varyantı 12:17 Dört Tuzak 13:02 Bu Derste Öğrendiklerimiz 13:34 Akılda Kalan Kural ve Sıradaki Ders Sıradaki derste: gruplama ve özetleme — groupby ve pivot_table. Kaynak: Wes McKinney, Python for Data Analysis, 3. baskı (O'Reilly 2022) — Bl. 6.1, 7.1–7.2 (konu sırası ve kavramlar). Kod ve örnekler özgündür, gerçekten çalıştırılmıştır. Veri Analizi ve Görselleştirme serisinin üçüncü dersi.