V tomto návode sa dozviete:
- Importovať CSV
- Groupby
Importovať CSV
Počas tutoriálu TensorFlow budete používať množinu údajov pre dospelých. Často sa používa pri klasifikačnej úlohe. Je k dispozícii na tejto adrese URL https://archive.ics.uci.edu/ml/machine-learning-databases/adult/adult.data
Údaje sú uložené vo formáte CSV. Tento súbor údajov obsahuje osem kategorických premenných:
Tento súbor údajov obsahuje osem kategorických premenných:
- pracovná trieda
- vzdelanie
- manželský
- okupácia
- vzťah
- rasa
- pohlavie
- rodná krajina
okrem toho šesť spojitých premenných:
- Vek
- fnlwgt
- vzdelanie_počet
- kapitálový zisk
- capital_loss
hours_week
Ak chcete importovať množinu súborov CSV, môžete použiť objekt pd.read_csv (). Základný argument vo vnútri je:
Syntax:
pandas.read_csv(filepath_or_buffer,sep=', ',`names=None`,`index_col=None`,`skipinitialspace=False`)
- filepath_or_buffer: Cesta alebo URL s údajmi
- sep = ',': Definujte oddeľovač, ktorý sa má použiť
- `names = None`: Pomenujte stĺpce. Ak má množina údajov desať stĺpcov, musíte zadať desať mien
- `index_col = None`: Ak áno, prvý stĺpec sa použije ako index riadkov
- `skipinitialspace = False`: Preskočiť medzery za oddeľovačom.
Ďalšie informácie o readcsv () nájdete v oficiálnej dokumentácii
https://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_csv.html.
Zvážte nasledujúci príklad
## 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
Výkon:
(32561, 15)
Groupby
Ľahký spôsob, ako zobraziť údaje, je použiť metódu groupby. Táto metóda vám pomôže zosumarizovať údaje podľa skupín. Nižšie je uvedený zoznam metód dostupných pomocou groupby:
- počet: počet
- min: min
- max: max
- znamenať: znamenať
- medián: medián
- štandardná odchýlka: sdt
- atď
Vo vnútri groupby () môžete použiť stĺpec, na ktorý chcete metódu použiť.
Pozrime sa na jedno zoskupenie so súborom údajov pre dospelých. Získate priemer všetkých súvislých premenných podľa typu príjmu, tj nad 50 000 alebo pod 50 000
df_train.groupby(['label']).mean()
Vek | fnlwgt | vzdelanie_počet | kapitálový zisk | capital_loss | hours_week | |
štítok | ||||||
<= 50 tis | 36,783738 | 190340,86517 | 9,595065 | 148,752468 | 53,142921 | 38,840210 |
> 50 tis | 44,249841 | 188005,00000 | 11,611657 | 4006,142456 | 195,001530 | 45,473026 |
Môžete získať minimálny vek podľa typu domácnosti
df_train.groupby (['label']) ['age']. min ()
label<=50K 17>50K 19Name: age, dtype: int64
Môžete ich tiež zoskupiť podľa viacerých stĺpcov. Napríklad môžete získať maximálny kapitálový zisk podľa typu domácnosti a rodinného stavu.
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
Po zoskupení môžete vytvoriť graf. Jedným zo spôsobov, ako to urobiť, je použiť po zoskupení dej.
Ak chcete vytvoriť vynikajúcejšiu zápletku, použijete unstack () po mean (), aby ste mali rovnaký viacúrovňový index, alebo hodnoty spojíte podľa výnosov nižších ako 50 000 a vyšších ako 50 000. V takom prípade bude mať graf dve skupiny namiesto 14 (2 * 7).
Ak používate Jupyter Notebook, nezabudnite pridať% matplotlib inline, inak sa žiadny graf nezobrazí
%matplotlib inlinedf_plot = df_train.groupby(['label', 'marital'])['capital_gain'].mean().unstack()df_plot