V tej vadnici boste izvedeli:
- Uvozi CSV
- Groupby
Uvozi CSV
Med vadnico TensorFlow boste uporabili nabor podatkov za odrasle. Pogosto se uporablja pri klasifikacijski nalogi. Na voljo je na tem URL-ju https://archive.ics.uci.edu/ml/machine-learning-databases/adult/adult.data
Podatki so shranjeni v obliki CSV. Ta nabor podatkov vključuje osem kategoričnih spremenljivk:
Ta nabor podatkov vključuje osem kategoričnih spremenljivk:
- delovni razred
- izobraževanje
- zakonski
- poklic
- razmerje
- dirka
- seks
- Domača država
poleg tega šest neprekinjenih spremenljivk:
- starost
- fnlwgt
- izobraževalna_številka
- kapitalski dobiček
- izguba kapitala
ur_teden
Če želite uvoziti nabor podatkov CSV, lahko uporabite predmet pd.read_csv (). Osnovni argument znotraj je:
Sintaksa:
pandas.read_csv(filepath_or_buffer,sep=', ',`names=None`,`index_col=None`,`skipinitialspace=False`)
- filepath_or_buffer: Pot ali URL s podatki
- sep = ',': Določite ločilo, ki ga želite uporabiti
- `names = None`: poimenujte stolpce. Če ima nabor podatkov deset stolpcev, morate posredovati deset imen
- `index_col = None`: Če je odgovor pritrdilen, se prvi stolpec uporabi kot indeks vrstice
- `skipinitialspace = False`: preskoči presledke po ločevalniku.
Za več informacij o readcsv () si oglejte uradno dokumentacijo
https://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_csv.html.
Upoštevajte naslednji primer
## 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
Izhod:
(32561, 15)
Groupby
Enostaven način za prikaz podatkov je uporaba metode groupby. Ta metoda vam lahko pomaga pri povzetku podatkov po skupinah. Spodaj je seznam metod, ki so na voljo pri groupby:
- count: count
- min: min
- maks .: maks
- pomeni: pomeni
- mediana: mediana
- standardni odklon: sdt
- itd
Znotraj groupby () lahko uporabite stolpec, v katerem želite uporabiti metodo.
Oglejmo si eno skupino z naborom podatkov za odrasle. Dobili boste povprečje vseh zveznih spremenljivk glede na vrsto prihodka, tj. Nad 50k ali pod 50k
df_train.groupby(['label']).mean()
starost | fnlwgt | izobraževalna_številka | kapitalski dobiček | izguba kapitala | ur_teden | |
nalepko | ||||||
<= 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 |
Najnižjo starost lahko dobite glede na vrsto gospodinjstva
df_train.groupby (['oznaka']) ['starost']. min ()
label<=50K 17>50K 19Name: age, dtype: int64
Lahko tudi razvrstite po več stolpcih. Tako lahko na primer pridobite največji kapitalski dobiček glede na vrsto gospodinjstva in zakonski stan.
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
Zaplet lahko ustvarite po skupini. Eden od načinov za to je uporaba ploskve po razvrščanju v skupine.
Če želite ustvariti bolj odlično ploskev, boste uporabili unstack () po mean (), tako da boste imeli enak indeks na več ravneh, ali pa boste vrednosti združili s prihodkom, nižjim od 50k in nad 50k. V tem primeru bo ploskev imela dve skupini namesto 14 (2 * 7).
Če uporabljate Jupyter Notebook, dodajte% matplotlib v vrstici, sicer ploskev ne bo prikazana
%matplotlib inlinedf_plot = df_train.groupby(['label', 'marital'])['capital_gain'].mean().unstack()df_plot