CSV-adatok importálása a Pandas.read_csv () használatával

Tartalomjegyzék:

Anonim

Ebben az oktatóanyagban megtudhatja:

  • CSV importálása
  • Csoportosít

CSV importálása

A TensorFlow oktatóprogram során a felnőttek adatkészletét fogja használni. Gyakran használják osztályozási feladattal. 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 nyolc kategorikus változót tartalmaz:

  • munkahely
  • oktatás
  • házassági
  • Foglalkozása
  • kapcsolat
  • verseny
  • szex
  • Szülőföld

ráadásul hat folyamatos változó:

  • kor
  • fnlwgt
  • oktatás_szám
  • tőkenyereség
  • tőke_veszteség

óra_ hét

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

Szintaxis:

pandas.read_csv(filepath_or_buffer,sep=', ',`names=None`,`index_col=None`,`skipinitialspace=False`)
  • filepath_or_buffer: Útvonal vagy URL az adatokkal
  • sep = ',': Adja meg a használni kívánt elválasztót
  • `names = Nincs`: Nevezze meg az oszlopokat. Ha az adatkészletnek tíz oszlopa van, akkor tíz nevet kell átadnia
  • `index_col = Nincs`: Ha igen, akkor az első oszlopot használjuk sorindexként
  • `skipinitialspace = Hamis`: A szóközök elhagyása a határoló után.

Ha többet szeretne tudni a readcsv () fájlról, kérjük, olvassa el a hivatalos dokumentációt

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

Tekintsük a következő példát

## Import csvimport pandas as pd## Define path dataCOLUMNS = ['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

Kimenet:

(32561, 15)

Csoportosít

Az adatok megtekintésének egyszerű módja a groupby módszer használata. Ez a módszer segíthet az adatok csoportonkénti összegzésében. Az alábbiakban felsoroljuk a groupby által elérhető módszereket:

  • count: count
  • min: min
  • max: max
  • jelentése: jelentése
  • medián: medián
  • szórás: sdt
  • stb.

A groupby () belsejében használhatja azt az oszlopot, amelyet alkalmazni szeretne.

Vessünk egy pillantást egyetlen csoportosításra a felnőttek adatkészletével. Megkapja az összes folyamatos változó átlagát a bevétel típusa szerint, azaz 50 ezer felett vagy 50 ezer alatt

df_train.groupby(['label']).mean() 
kor fnlwgt oktatás_szám tőkenyereség tőke_veszteség óra_ hét
címke
<= 50K 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 háztartás típusa szerint megadhatja a minimális életkorot

df_train.groupby (['label']) ['age']. min ()

label<=50K 17>50K 19Name: age, dtype: int64 

Csoportosíthat több oszlop szerint is. Például a háztartás típusának és családi állapotának megfelelően kaphatja meg a maximális tőkenyereséget.

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

Létrehozhat egy diagramot a groupby nyomán. Ennek egyik módja az, hogy a csoportosítás után használjon egy diagramot.

Kiválóbb grafikon létrehozásához használja az unstack () értéket a mean () után, hogy ugyanaz a többszintű indexe legyen, vagy 50k-nál alacsonyabb és 50k-nál nagyobb bevétellel egyesíti az értékeket. Ebben az esetben a cselekménynek két csoportja lesz 14 helyett (2 * 7).

Ha Jupyter Notebookot használ, ne felejtse el inline hozzáadni a% matplotlib szót, különben nem jelenik meg ábra

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