Šioje pamokoje sužinosite:
- Importuoti CSV
- Grupuoti pagal
Importuoti CSV
Per „TensorFlow“ mokymo programą naudosite suaugusiųjų duomenų rinkinį. Jis dažnai naudojamas kartu su klasifikavimo užduotimi. Tai galima rasti šiame URL: https://archive.ics.uci.edu/ml/machine-learning-databases/adult/adult.data
Duomenys saugomi CSV formatu. Šiame duomenų rinkinyje yra aštuoni kategoriniai kintamieji:
Šiame duomenų rinkinyje yra aštuoni kategoriniai kintamieji:
- darbo klasė
- švietimas
- santuokinis
- užsiėmimas
- santykiai
- lenktynės
- seksas
- Gimtoji šalis
be to, šeši nuolatiniai kintamieji:
- amžiaus
- fnlwgt
- edukacijos_skaita
- kapitalo prieaugio
- kapitalo praradimas
darbo valandos
Norėdami importuoti CSV duomenų rinkinį, galite naudoti objektą pd.read_csv (). Pagrindinis argumentas yra:
Sintaksė:
pandas.read_csv(filepath_or_buffer,sep=', ',`names=None`,`index_col=None`,`skipinitialspace=False`)
- filepath_or_buffer: Kelias arba URL su duomenimis
- sep = ',': Apibrėžkite norimą naudoti skiriklį
- `vardai = Nėra`: Pavadinkite stulpelius. Jei duomenų rinkinyje yra dešimt stulpelių, turite perduoti dešimt vardų
- `index_col = Nėra`: Jei taip, pirmasis stulpelis naudojamas kaip eilutės indeksas
- `skipinitialspace = False`: praleiskite tarpus po ribotuvo.
Norėdami gauti daugiau informacijos apie readcsv (), patikrinkite oficialius dokumentus
https://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_csv.html.
Apsvarstykite šį pavyzdį
## 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
Išvestis:
(32561, 15)
Grupuoti pagal
Lengvas būdas pamatyti duomenis yra „groupby“ metodo naudojimas. Šis metodas gali padėti apibendrinti duomenis pagal grupes. Žemiau pateikiamas galimų grupių metodų sąrašas:
- suskaičiuoti: suskaičiuoti
- min .: min
- maks .: maks
- reiškia: reiškia
- mediana: mediana
- standartinis nuokrypis: sdt
- ir pan
„Groupby“ () viduje galite naudoti stulpelį, kurį norite taikyti.
Pažvelkime į vieną grupavimą su suaugusiųjų duomenų rinkiniu. Gausite visų tęstinių kintamųjų vidurkį pagal pajamų rūšį, ty didesnę nei 50 tūkst. Ar mažesnę nei 50 tūkst
df_train.groupby(['label']).mean()
amžiaus | fnlwgt | edukacijos_skaita | kapitalo prieaugio | kapitalo praradimas | darbo valandos | |
etiketė | ||||||
<= 50 tūkst | 36.783738 | 190340.86517 | 9.595065 | 148.752468 | 53.142921 | 38.840210 |
> 50 tūkst | 44.249841 | 188005.00000 | 11.611657 | 4006.142456 | 195.001530 | 45.473026 |
Galite gauti minimalų amžių pagal namų ūkio tipą
df_train.groupby (['label']) ['amžius']. min. ()
label<=50K 17>50K 19Name: age, dtype: int64
Taip pat galite grupuoti pagal kelis stulpelius. Pavyzdžiui, galite gauti maksimalų kapitalo prieaugį pagal namų ūkio tipą ir šeiminę padėtį.
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
Siužetą galite sukurti sekdami grupę. Vienas iš būdų tai padaryti yra panaudoti siužetą po grupavimo.
Norėdami sukurti puikesnį grafiką, naudosite unstack () po mean (), kad turėtumėte tą patį daugiapakopį indeksą arba sujungtumėte vertes pagal mažesnes nei 50k ir didesnes nei 50k pajamas. Tokiu atveju sklype bus dvi grupės, o ne 14 (2 * 7).
Jei naudojate „Jupyter Notebook“, nepamirškite pridėti% matplotlib inline, kitaip sklypas nebus rodomas
%matplotlib inlinedf_plot = df_train.groupby(['label', 'marital'])['capital_gain'].mean().unstack()df_plot