0Pricing
Learn AI with Python · Ders

EDA İş Akışı ve Veri Profilleme

df.info(), df.describe(), eksik değer denetimi, veri türü kontrolü ve kardinalite analizi.

EDA İş Akışı ve Veri Profilleme, CoddyKit'te ücretsiz bir Learn AI with Python dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Learn AI with Python öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Learn AI with Python kursu toplamda 4 dersten oluşur.

Keşifsel Veri Analizi Nedir?

Keşifsel Veri Analizi (EDA), herhangi bir veri kümesiyle modelleme öncesinde yaptığınız ilk iştir. Amacı yapıyı anlamak, sorunları fark etmek ve sezgi geliştirmektir.

Disiplinli bir EDA ilk inceleme kontrol listesi şu soruları yanıtlar: Veri ne kadar büyük? Sütunların türleri neler? Eksik değerler nerede? Yinelenenler var mı? Değerler nasıl dağılıyor?

  • Veri kalitesi sorunlarını erkenden yakalayın
  • Hangi özelliklerin temizlenmesi gerektiğine karar verin
  • Daha sonra sınamak üzere hipotezler oluşturun

Verilerin Yüklenmesi

Her şey bir DataFrame yükleyip head() ve shape ile hızlıca göz atmanızla başlar.

shape, (rows, columns) demeti döndürür; böylece üzerinde çalıştığınız ölçeği anında bilirsiniz.

import pandas as pd

df = pd.read_csv("customers.csv")
print(df.shape)        # (10000, 8)
print(df.head())       # first 5 rows

df.info() — Türler ve Boş Olmayan Değer Sayıları

df.info(), en kullanışlı ilk komuttur. Her sütunun adını, veri türünü ve boş olmayan değer sayısını yazdırır.

Sayısal bir sütun object olarak görünüyorsa bir sorun vardır (başıboş metin, virgüller veya para birimi simgeleri). Sütunlardaki boş olmayan değer sayıları farklıysa verilerinizde eksik değerler vardır.

df.info()
# <class pandas.DataFrame>
# RangeIndex: 10000 entries
# age      9800 non-null  float64
# city     10000 non-null object
# income   9500 non-null  float64

df.describe() — Sayısal Özet

df.describe(), her sayısal sütun için sayım, ortalama, standart sapma, minimum, çeyreklikler (25/50/75%) ve maksimum değerlerini verir.

Kırmızı bayrakları arayın: yaş sütununda min değerinin -1 olması, max değerinin 75. yüzdelik dilimin çok üzerinde olması (aykırı değerler) veya ortalamanın medyandan çok uzak olması (çarpıklık).

print(df.describe())
# Use include="all" to also summarize categorical columns
print(df.describe(include="all"))

df.isnull().sum() — Eksik Değerleri Sayma

isnull() ile sum() işlevlerini zincirlemek, her sütundaki eksik değerleri sayar. Genel toplamı bulmak için bir .sum() daha ekleyin.

Ciddiyetini değerlendirmek için sonucu yüzdeye dönüştürün: %60'ı eksik olan bir sütunu kaldırmak mantıklı olabilirken %2'lik eksikliği doldurmak kolaydır.

print(df.isnull().sum())

missing_pct = df.isnull().sum() / len(df) * 100
print(missing_pct.sort_values(ascending=False))

df.duplicated().sum() — Yinelenen Satırları Bulma

df.duplicated(), önceki bir satırın birebir kopyası olan satırları işaretleyen mantıksal bir Seri döndürür. Bu Seriyi toplamak, kaç yinelenen satır bulunduğunu sayar.

Yinelenenleri subset ile anahtar sütunlarla sınırlayabilirsiniz; bu, bir id değerinin benzersiz olması gerektiğinde kullanışlıdır.

print(df.duplicated().sum())            # exact duplicate rows
print(df.duplicated(subset=["id"]).sum()) # duplicate ids

df = df.drop_duplicates()

value_counts() — Kategori Sıklıkları

value_counts(), her benzersiz değerin bir sütunda kaç kez göründüğünü sayar. Kategorik inceleme için başvurulacak araçtır.

Ham sayımlar yerine oranları görmek için normalize=True kullanın; eksik değerleri de sayıma katmak için dropna=False kullanın.

print(df["city"].value_counts())
print(df["city"].value_counts(normalize=True))
print(df["city"].value_counts(dropna=False))

Kardinalite Denetimi

Kardinalite, bir sütundaki farklı değerlerin sayısıdır ve nunique() ile bulunur.

  • Düşük kardinalite (birkaç kategori) → tek-sıcak kodlama için uygundur.
  • Yüksek kardinalite (binlerce benzersiz metin, örneğin kullanıcı ID'leri) → olduğu haliyle genellikle kullanışlı bir özellik değildir.
for col in df.select_dtypes("object").columns:
    print(col, "->", df[col].nunique(), "unique")

Sabit ve ID Benzeri Sütunları Fark Etme

Profil oluşturma sırasında iki uç durumu işaretlemeye değer:

  • Sabit sütunlar (nunique() == 1) hiçbir bilgi taşımaz; bunları kaldırın.
  • ID benzeri sütunlar (nunique() == len(df)) her satır için benzersizdir ve çoğu modele yararlı bilgi sağlamaz.
n = len(df)
for col in df.columns:
    u = df[col].nunique()
    if u == 1:
        print(col, "is constant")
    elif u == n:
        print(col, "is ID-like")

Veri Türleri ve Bellek Kullanımı

Sütunların doğru şekilde saklandığını doğrulamak için df.dtypes değerini, fazla bellek kullanan sütunları bulmak için de df.memory_usage(deep=True) değerini denetleyin.

Sayısal türleri daha küçük türlere dönüştürmek ve düşük kardinaliteli metinleri category türüne çevirmek, büyük veri kümelerinde bellek kullanımını büyük ölçüde azaltabilir.

print(df.dtypes)
print(df.memory_usage(deep=True))

df["city"] = df["city"].astype("category")

Yeniden Kullanılabilir Profil Oluşturma Kod Parçacığı

Tüm kontrol listesini tek bir yardımcı işlevde birleştirerek her yeni veri kümesine aynı ilk incelemeyi uygulayabilirsiniz.

Herhangi bir DataFrame yüklediğiniz anda çalıştırarak şekli, türleri, eksik değerleri, yinelenenleri ve kardinaliteyi hemen ortaya çıkarın.

def profile(df):
    print("Shape:", df.shape)
    print(df.info())
    print("Missing:\n", df.isnull().sum())
    print("Dupes:", df.duplicated().sum())
    for c in df.select_dtypes("object"):
        print(c, df[c].nunique(), "unique")

profile(df)

Hızlı Kontrol: Eksik Değerler

Her sütundaki eksik değerlerin yüzde oranını görmek istiyorsunuz.

Özet: EDA İlk İnceleme Kontrol Listesi

Artık her veri kümesi için tekrarlanabilir bir başlangıç rutininiz var:

  • Ölçek ve önizleme için shape ve head()
  • Veri türleri ve boş olmayan değer sayıları için info()
  • Sayısal özetler ve aykırı değer ipuçları için describe()
  • Eksik değerler için isnull().sum()
  • Yinelenen satırlar için duplicated().sum()
  • Kategori sıklıkları ve kardinalite için value_counts() ve nunique()

Sonraki bölümde tek değişkenli analizle tek tek sütunları daha ayrıntılı inceleyeceğiz.

Sıkça Sorulan Sorular

“EDA İş Akışı ve Veri Profilleme” dersi ücretsiz mi?

Evet — “EDA İş Akışı ve Veri Profilleme” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Learn AI with Python kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Learn AI with Python kursu toplamda 4 dersten oluşur.

“EDA İş Akışı ve Veri Profilleme” dersinde ne öğreneceğim?

df.info(), df.describe(), eksik değer denetimi, veri türü kontrolü ve kardinalite analizi. Learn AI with Python ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Learn AI with Python öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Learn AI with Python, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.

“EDA İş Akışı ve Veri Profilleme” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Learn AI with Python dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Learn AI with Python dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. EDA İş Akışı ve Veri Profilleme
  2. Tek Değişkenli Analiz
  3. İki Değişkenli ve Çok Değişkenli Analiz
  4. Özellik Dağılımı ve Hedef Analizi
← Learn AI with Python Sayfasına Dön