Pandák olvassák a_csv() függvényt példával

CSV importálása a Pandasba

A TensorFlow oktatóanyaga során a felnőtt adatkészletet fogja használni. Gyakran használják osztályozási feladatokkal. Ezen az URL-en érhető el https://archive.ics.uci.edu/ml/machine-learning-databases/adult/adult.data

Az adatokat CSV formátumban tároljuk. Ez az adatkészlet nyolc kategorikus változót tartalmaz:

Ez az adatkészlet 8 kategorikus változót tartalmaz:

  • munkaosztály
  • szabott oktatás
  • házastársi
  • foglalkozás
  • kapcsolat
  • verseny
  • szex
  • Szülőföld

És 6 folytonos változó:

  • kor
  • fnlwgt
  • oktatási_szám
  • tőkenyereség
  • tőke_veszteség
  • óra_hét

Pandák read_csv() módszer

CSV-adatkészlet importálásához használhatja a pd.read_csv() objektumot. Az alapvető érv belül a következő:

Pandák read_csv() Szintaxis

pandas.read_csv(filepath_or_buffer,sep=', ',`names=None`,`index_col=None`,`skipinitialspace=False`)
  • fájlútvonal_vagy_puffer: Az adatok elérési útja vagy URL-je
  • szep=',': Határozza meg a használandó határolót
  • `names=Nincs`: Nevezze el az oszlopokat. Ha az adatkészlet tíz oszlopból áll, tíz nevet kell átadnia
  • `index_col=Nincs: Ha igen, a rendszer az első oszlopot használja sorindexként
  • `skipinitialspace=False`: Szóközök kihagyása a határoló után.

A read_csv()-ről további információkért tekintse meg a hivatalos dokumentációt:

https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.read_csv.html

Pandák read_csv() Példa

## Import csv
import pandas as pd
## Define path data
COLUMNS = ['age','workclass', 'fnlwgt', 'education', 'education_num', 'marital',
           'occupation', 'relationship', 'race', 'sex', 'capital_gain', 'capital_loss',
           'hours_week', 'native_country', 'label']
PATH = "https://archive.ics.uci.edu/ml/machine-learning-databases/adult/adult.data"
df_train = pd.read_csv(PATH,
                       skipinitialspace=True,
                       names = COLUMNS,
                       index_col=False)
df_train.shape

output:

(32561, 15)

Pandák groupby() Method

Az adatok megtekintésének egyszerű módja a groupby módszer. Ez a módszer segíthet az adatok csoportonkénti összefoglalásában. Az alábbiakban felsoroljuk a groupby() metódussal elérhető módszereket:

  • szám: számol
  • min: min
  • max: max
  • jelent: jelent
  • medián: medián
  • szórás: sdt
  • stb.

A groupby()-en belül használhatja azt az oszlopot, amelyre alkalmazni szeretné a metódust.

Vessünk egy pillantást egyetlen csoportosításra a felnőtt adatkészlettel. Megkapja az összes folytonos változó átlagát a bevétel típusa szerint, azaz 50 50 felett vagy XNUMX XNUMX alatt:

df_train.groupby(['label']).mean()
címke kor fnlwgt oktatási_szám tőkenyereség tőke_veszteség óra_hét
<= 50 ezer 36.783738 190340.86517 9.595065 148.752468 53.142921 38.840210
> 50K 44.249841 188005.00000 11.611657 4006.142456 195.001530 45.473026

A minimális életkort háztartástípusonként kaphatja meg:

df_train.groupby(['label'])['age'].min()
label
<=50K    17
>50K     19
Name: age, dtype: int64

Több oszlop szerint is csoportosíthat. Például a háztartás típusa és a családi állapot szerint maximális tőkenyereséget kaphat.

df_train.groupby(['label', 'marital'])['capital_gain'].max()				
label  marital              
<=50K  Divorced                 34095
       Married-AF-spouse         2653
       Married-civ-spouse       41310
       Married-spouse-absent     6849
       Never-married            34095
       Separated                 7443
       Widowed                   6849
>50K   Divorced                 99999
       Married-AF-spouse         7298
       Married-civ-spouse       99999
       Married-spouse-absent    99999
       Never-married            99999
       Separated                99999
       Widowed                  99999
Name: capital_gain, dtype: int64

Létrehozhat egy diagramot a következő csoport szerint. Ennek egyik módja a cselekmény használata a csoportosítás után.

Egy jobb cselekmény létrehozásához használja az unstack() függvényt az mean() után, hogy ugyanazt a többszintű indexet kapja, vagy 50 50 alatti és 14 2 feletti bevétellel kapcsolja össze az értékeket. Ebben az esetben a telek 7 (XNUMX*XNUMX) helyett két csoportos lesz.

Ha Jupyter jegyzetfüzet, győződjön meg róla, hogy a %matplotlib inline-t adja hozzá, különben nem jelenik meg a diagram

%matplotlib inline
df_plot = df_train.groupby(['label', 'marital'])['capital_gain'].mean().unstack()
df_plot

Pandák groupby() metódus Példa

Összegzésként

  • CSV-adatkészlet importálásához pandák, használhatja a pd.read_csv() objektumot.
  • A groupby() metódus segíthet az adatok csoportonkénti összefoglalásában.
  • Több oszlop szerint is csoportosíthat. Például a háztartás típusa és a családi állapot szerint maximális tőkenyereséget kaphat.