CodeBlanks Logo Icon CodeBlanks

Veri türleri

Veri türleri (dtype) sayısal, kategorik ve metin olarak ayrılır.

Türleri kontrol et

CSV'den okunan sayılar bazen metin (object) olarak gelir: "1.200", "?" ya da birim içeren "35 kg" gibi değerler yüzünden. dtypes bunu gösterir:

print(df.dtypes)
df["fiyat"] = pd.to_numeric(df["fiyat"], errors="coerce")

errors="coerce", sayıya çevrilemeyen değerleri NaN yapar; sonra bunlar eksik değer olarak ele alınır.

Tür dönüşümü ve kategoriler

astype ile tür değiştirilir. Az sayıda farklı değeri olan metin sütunları category türüne çevrilince bellekten kazanılır:

df["yas"] = df["yas"].astype(int)
df["sehir"] = df["sehir"].astype("category")
print(df["sehir"].cat.categories)

Model yine de metin kabul etmez; kategoriler bir sonraki derste sayıya kodlanır.

Uygulama Sayıya çevir

ham listesini pd.to_numeric(..., errors="coerce") ile sayıya çevir; eksik sayısını isna().sum() ile, geçerli değerlerin ortalamasını mean() ile yazdır.

Başlangıç kodu

model.py
import pandas as pd

s = pd.Series(["10", "20", "?", "30", "yok"])

# buraya yaz

Örnek çözüm

model.py
import pandas as pd

s = pd.Series(["10", "20", "?", "30", "yok"])

x = pd.to_numeric(s, errors="coerce")
print(x.isna().sum())
print(x.mean())

Beklenen çıktı

2
20.0

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 <code>pd.to_numeric(["5", "?"], errors="coerce")</code> neyi üretir?

  • [5, 0]
  • ["5", "?"]
  • [5.0, NaN] Doğru cevap
  • Hata

Açıklama: Çevrilemeyen "?" NaN olur; NaN yüzünden sonuç float türündedir.

2 Metni sayıya çevir; çevrilemeyenler NaN olsun.

Soru
df["fiyat"] = pd.to_numeric(df["fiyat"], errors=____)
Cevap
df["fiyat"] = pd.to_numeric(df["fiyat"], errors="coerce")

Açıklama: "raise" hata verir, "coerce" NaN üretir.

3 Türleri eşleştir.

Kavram Anlamı
int64 Tam sayı
float64 Ondalıklı sayı
object Metin
category Sınırlı değer kümesi

Başlangıç bölümündeki tüm dersler