Python és adattudomány alapok · Lecke 05

pandas és a DataFrame

A valós adat táblázatos, és erre való a pandas. A Series egy megnevezett oszlop, a DataFrame egy táblázat sorindexszel és oszlopnevekkel. Ebben a leckében megnézzük a létrehozásukat, az áttekintő hívásokat és az oszlopok kiválasztását.

Vissza a tananyaghoz


A táblázatos adat eszköze

A valós adat legtöbbször táblázatos, oszlopokkal és sorokkal, mint egy táblázatkezelőben. Erre a NumPy tömb önmagában kényelmetlen, mert nincsenek oszlopnevei. A pandas könyvtár erre a feladatra készült. Két fő adatszerkezete van, a Series egy megnevezett oszlop, a DataFrame pedig több oszlopból álló táblázat, közös sorindexszel. A pandas szokásos importja a pd rövidítéssel történik.

import numpy as np
import pandas as pd

s = pd.Series([1, 3, 5, np.nan, 6, 8])
print(s)
# 0    1.0
# 1    3.0
# 2    5.0
# 3    NaN
# 4    6.0
# 5    8.0
# dtype: float64

A Series egy indexelt oszlop. A hiányzó értéket a pandas NaN néven jelöli, ami a Not a Number rövidítése.

A DataFrame

A DataFrame a pandas központi szerkezete, egy táblázat sorindexszel és oszlopnevekkel. Legegyszerűbben egy szótárból hozható létre, ahol a kulcsok az oszlopnevek, az értékek pedig az oszlopok adatai. Minden oszlopnak van saját típusa, és az oszlopokat név szerint érjük el, ami sokkal olvashatóbb, mint a puszta számindex.

df = pd.DataFrame({
    "termek": ["kave", "tea", "kakao"],
    "ar": [2990, 1490, 2490],
    "raktaron": [True, False, True],
})
print(df)
#   termek    ar  raktaron
# 0   kave  2990      True
# 1    tea  1490     False
# 2  kakao  2490      True

A DataFrame szótárból épül, a kulcsok az oszlopnevek. A bal oldali számoszlop az automatikus sorindex.

index termek ar raktaron 0 kave 2990 True 1 tea 1490 False 2 kakao 2490 True egy oszlop = egy Series
A DataFrame sorindexből és megnevezett oszlopokból áll. Egy kiemelt oszlop önmagában egy Series, amelynek saját típusa van.

Az adat első ránézésre

Egy új adathalmazon az első dolog a gyors áttekintés. A head az első néhány sort mutatja, alapból ötöt, a tail az utolsókat. Az index a sorok címkéit, a columns az oszlopneveket adja. A describe pedig a számoszlopokra készít összefoglaló statisztikát, például darabszámot, átlagot, szórást, minimumot és maximumot. Ez a négy hívás percek alatt megmutatja, mivel van dolgunk.

print(df.head(2))      # elso ket sor
print(df.columns)      # Index(['termek', 'ar', 'raktaron'], dtype='object')
print(df.describe())   # osszefoglalo statisztika a szamoszlopokrol

A head, a columns és a describe együtt gyors képet ad az adat szerkezetéről és számértékeiről.


Oszlop kiválasztása

Egyetlen oszlopot a nevével, szögletes zárójelben érünk el, és az eredmény egy Series. Több oszlopot egy nevekből álló listával kérünk, ilyenkor a visszakapott érték egy szűkebb DataFrame. Mivel az oszlop Series, azonnal alkalmazhatók rá az összesítő műveletek, például a mean.

arak = df["ar"]        # egy oszlop, Series
print(arak.mean())     # 2323.33...

resz = df[["termek", "ar"]]   # ket oszlop, DataFrame

Egy oszlop neve Series-t ad vissza, egy neveket tartalmazó lista pedig szűkebb DataFrame-et.

2

Két szerkezet visz mindent. A Series egy oszlop, a DataFrame egy táblázat. Ha ezt a kettőt érted, a pandas legtöbb művelete innen már ismerős mintát követ. A következő lecke ezekre építve tölt be, tisztít és szűr valódi adatot.


← 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 →