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