Főoldal / Python adatelemzés

Python és a Pandas könyvtár az adatelemzésben

Az adatfeldolgozás alapvető lépései: betöltés, tisztítás, szűrés és aggregáció Pandas segítségével, valós adathalmazokon bemutatva.

Pandas Python könyvtár logó

Mi az a Pandas?

A Pandas egy nyílt forráskódú Python könyvtár, amelyet táblázatos és idősoradatok hatékony kezelésére fejlesztettek ki. A neve az angol "panel data" kifejezésből ered, amely az ökonometriai adatstruktúrák egyik alapfogalma. A könyvtárat Wes McKinney kezdte el fejleszteni 2008-ban, és azóta az adatelemzés de facto standardjává vált Pythonban.

A Pandas két alapvető adatstruktúrát biztosít: a Series egy egydimenziós, indexelt adatsor, míg a DataFrame egy kétdimenziós, sorokat és oszlopokat tartalmazó táblázat. A legtöbb adatelemzési feladat DataFrame-ekkel zajlik.

Hivatkozás

A Pandas hivatalos dokumentációja elérhető a pandas.pydata.org oldalon, ahol részletes API-referencia és oktatóanyagok találhatók.

Adatok betöltése

A Pandas számos formátumból képes adatokat olvasni. A leggyakoribb forrás a CSV fájl, de támogatott az Excel, JSON, SQL, HTML és Parquet formátum is.

import pandas as pd df = pd.read_csv('adatok.csv', encoding='utf-8', sep=',') print(df.shape) print(df.dtypes) print(df.head(5))

Az adatok betöltése után érdemes azonnal ellenőrizni az alaptulajdonságokat: sorainak és oszlopainak számát (shape), az oszlopok adattípusát (dtypes), és az első néhány sort (head()). Ez gyorsan képet ad az adathalmaz struktúrájáról.

Excel-fájlok kezelése

Excel-fájlok esetén a read_excel() függvény használható, amely több munkalap olvasását is lehetővé teszi. Az openpyxl csomag telepítése szükséges lehet .xlsx formátumhoz.

df_excel = pd.read_excel('riport.xlsx', sheet_name='Adatok', header=0)

Adattisztítás

A valós adathalmazok szinte mindig tartalmaznak hibákat, hiányzó értékeket vagy következetlenségeket. Az adattisztítás a feldolgozás egyik legidőigényesebb, mégis megkerülhetetlen lépése.

Hiányzó értékek kezelése

A Pandas az NaN (Not a Number) értékkel jelöli a hiányzó adatokat. Ezeket különböző stratégiákkal lehet kezelni:

  • Eltávolítás: df.dropna() – azokat a sorokat törli, amelyek legalább egy hiányzó értéket tartalmaznak
  • Kitöltés konstanssel: df.fillna(0) – a hiányzó értékeket egy meghatározott értékkel helyettesíti
  • Kitöltés átlaggal: df['ár'].fillna(df['ár'].mean()) – az oszlop átlagával tölti ki a hiányokat
  • Előre- vagy visszatöltés: df.ffill(), df.bfill() – idősoroknál hasznos, az előző vagy következő értékkel pótol
print(df.isnull().sum()) df_clean = df.dropna(subset=['azonosito', 'ertek']) df['megjegyzes'] = df['megjegyzes'].fillna('nincs')

Duplikátumok eltávolítása

Az ismétlődő sorok torzítják az összesítéseket és az elemzési eredményeket.

df_unique = df.drop_duplicates(subset=['azonosito']) print(f"Duplikátumok száma: {df.duplicated().sum()}")

Szűrés és kiválasztás

A DataFrame-ek szűrése Boolean indexeléssel történik. Egyszerre több feltétel is alkalmazható az & (és) és | (vagy) operátorokkal.

df_szurt = df[(df['ev'] >= 2020) & (df['kategoria'] == 'A')] df_top = df.nlargest(10, 'ertek') df_valasztott = df[['nev', 'ertek', 'datum']]

Aggregáció és csoportosítás

A groupby() metódus lehetővé teszi az adatok csoportonkénti összesítését, hasonlóan az SQL GROUP BY záradékához.

osszesites = df.groupby('kategoria').agg( atlag_ertek=('ertek', 'mean'), ossz_ertek=('ertek', 'sum'), darab=('azonosito', 'count') ).reset_index() print(osszesites.sort_values('ossz_ertek', ascending=False))

Pivot táblák

A pivot_table() összetettebb kereszttáblák készítéséhez alkalmas, ahol egyszerre több dimenzió mentén lehet összesíteni.

pivot = pd.pivot_table( df, values='ertek', index='kategoria', columns='ev', aggfunc='sum', fill_value=0 )

Adatok exportálása

A feldolgozott adathalmazokat különböző formátumba lehet menteni a munkafolyamat más lépéseihez vagy jelentéskészítéshez.

df_clean.to_csv('tisztitott_adatok.csv', index=False, encoding='utf-8') df_clean.to_excel('riport_output.xlsx', index=False) df_clean.to_json('adatok.json', orient='records', force_ascii=False)

Magyarországi alkalmazási területek

A Pandas és Python alapú adatelemzés Magyarországon elsősorban a pénzügyi szektorban, a közigazgatásban és a kutatásban terjedt el. A KSH (Központi Statisztikai Hivatal) nyilvánosan elérhetővé teszi számos statisztikai adatsorát, amelyek közvetlenül betölthetők Pandas segítségével.

A NAV (Nemzeti Adó- és Vámhivatal) és az MNB (Magyar Nemzeti Bank) is publikál strukturált adatokat, amelyek elemzéséhez a Pandas megfelelő eszköz. Az open data portálon (data.gov.hu) elérhető adatkészletek ugyancsak CSV vagy Excel formátumban tölthetők le.

Megjegyzés

A Pandas 2.0 verziótól kezdve a háttérben Apache Arrow alapú tárolás is elérhető, ami nagyobb adathalmazok esetén lényegesen gyorsabb feldolgozást tesz lehetővé.

Kapcsolódó cikkek