Python és adattudomány alapok · Lecke 06

Adatbetöltés, tisztítás, szűrés

A modellezés előtt az adatot be kell tölteni, meg kell tisztítani és szűrni kell. Ebben a leckében egy tipikus utat járunk be, betöltés fájlból, hiányzó értékek kezelése, majd a sorok és oszlopok kiválasztása loc és iloc segítségével.

Vissza a tananyaghoz


Az adatelemzés első fele a tisztítás

A modellezés előtt az adatot be kell tölteni, meg kell tisztítani és szűrni kell. A gyakorlatban ez a munka gyakran több időt vesz igénybe, mint maga a modellezés. Ebben a leckében egy tipikus utat járunk be, betöltés fájlból, hiányzó értékek kezelése, majd a releváns sorok és oszlopok kiválasztása. A cél egy tiszta, megbízható táblázat.

Betöltés read_csv Tisztítás dropna, fillna Szűrés loc, feltétel Tiszta adat
A tipikus adatút négy lépése. A nyers fájltól a tiszta, elemzésre kész táblázatig betöltés, tisztítás és szűrés vezet.

Betöltés fájlból

A táblázatos adat leggyakoribb formátuma a CSV, vagyis a vesszővel elválasztott értékek fájlja. A pandas a read_csv függvénnyel tölti be egy DataFrame-be, a to_csv pedig visszaírja fájlba. A betöltés után szinte mindig a head és a describe hívással nézzük meg, mi érkezett.

import pandas as pd

df = pd.read_csv("rendelesek.csv")   # betoltes DataFrame-be
print(df.head())                     # elso nehany sor

df.to_csv("tiszta.csv", index=False) # visszairas fajlba

A read_csv fájlból tölt DataFrame-be, a to_csv pedig visszaír. Az index=False elhagyja a sorindexet a mentésből.


Hiányzó értékek

A valós adatban gyakran vannak hiányzó értékek, amelyeket a pandas NaN néven jelöl. Ezeket az isna függvénnyel lehet felderíteni. Két alapstratégia van a kezelésükre. A dropna eldobja a hiányzó értéket tartalmazó sorokat, a fillna pedig kitölti őket egy megadott értékkel. Hogy melyik a helyes, az az adattól és a feladattól függ.

print(df.isna().sum())     # oszloponkent hany hianyzo ertek van

tiszta = df.dropna(how="any")   # eldobja a hianyt tartalmazo sorokat
kitoltott = df.fillna(value=0)  # a hianyt nullaval potolja

Az isna felderíti a hiányt, a dropna eldobja az érintett sorokat, a fillna pedig kitölti egy értékkel.

dropna, a sor eldobása

  • Akkor jó, ha kevés a hiány
  • Nem torzítja az értékeket
  • Adatot veszítünk vele

fillna, a hiány kitöltése

  • Megtartja az összes sort
  • Kézben tartod a pótlás értékét
  • Rossz érték torzíthat, óvatosan

Sorok szűrése feltétellel

A szűrés a NumPy logikai indexeléséhez hasonlóan működik. Egy feltétel egy logikai Series-t ad, és ezzel választjuk ki a megfelelő sorokat. Így egyetlen kifejezéssel megkapjuk például az adott értéknél nagyobb árú rendeléseket. Több feltételt zárójelekkel és a logikai operátorokkal kombinálunk.

dragabb = df[df["ar"] > 2000]        # csak a 2000-nel dragabb sorok

raktaron_dragabb = df[(df["ar"] > 2000) & (df["raktaron"] == True)]

A feltétel logikai Series-t ad, amivel a sorokat szűrjük. Több feltételt zárójelekkel és az és operátorral kötünk össze.


Kiválasztás loc és iloc

A pandas két fő módot kínál sorok és oszlopok kiválasztására. A loc címke szerint választ, tehát sorindex és oszlopnév alapján. Az iloc pozíció szerint, vagyis a nullától induló sorszám alapján. A kettő különbsége fontos, mert a címke és a pozíció nem mindig esik egybe. Ez a két eszköz a pandas kiválasztás gerince.

# cimke szerint: sorindex es oszlopnevek
print(df.loc[0, "termek"])           # az elso sor termek erteke
print(df.loc[:, ["termek", "ar"]])   # minden sor, ket oszlop

# pozicio szerint: sorszamok
print(df.iloc[0])                    # elso sor
print(df.iloc[0:3, 0:2])             # elso harom sor, elso ket oszlop

A loc címke szerint választ, az iloc pozíció szerint. A kettő nem cserélhető fel, mert a címke eltérhet a sorszámtól.

3

Három lépés a tiszta adathoz. Betöltés a read_csv hívással, a hiány kezelése a dropna vagy a fillna eszközzel, majd szűrés feltétellel és kiválasztás loc vagy iloc segítségével. Innen az adat készen áll az ábrázolásra és a modellezésre.


← Előző lecke Következő lecke →

Workshop

AI Transformation Day

Egésznapos, vezetőknek szóló program. Feltérképezzük, hol tart a szervezet, mi az első reális lépés, és milyen belső feltételek szükségesek a sikerhez. A nap végén konkrét, prioritizált cselekvési lista.

Érdekel a program →