Veri türleri
- Makine Öğrenmesi kursu
- Başlangıç
- Ders 21/112
- 5 dk
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
import pandas as pd
s = pd.Series(["10", "20", "?", "30", "yok"])
# buraya yazÖrnek çözüm
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.
df["fiyat"] = pd.to_numeric(df["fiyat"], errors=____)
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 |