U ovom vodiču naučit ćete:
- Uvezite CSV
- Grupno
Uvezite CSV
Tijekom vodiča za TensorFlow upotrebljavat ćete skup podataka za odrasle. Često se koristi s klasifikacijskim zadatkom. Dostupan je na ovom URL-u https://archive.ics.uci.edu/ml/machine-learning-databases/adult/adult.data
Podaci se pohranjuju u CSV formatu. Ovaj skup podataka uključuje osam kategorijskih varijabli:
Ovaj skup podataka uključuje osam kategorijskih varijabli:
- radni razred
- obrazovanje
- bračni
- okupacija
- odnos
- utrka
- seks
- zavičajna_zemlja
štoviše, šest kontinuiranih varijabli:
- dob
- fnlwgt
- broj_obrazovanja
- kapitalni dobitak
- gubitak_kapitala
sati_tjedan
Za uvoz CSV skupa podataka možete koristiti objekt pd.read_csv (). Osnovni argument iznutra je:
Sintaksa:
pandas.read_csv(filepath_or_buffer,sep=', ',`names=None`,`index_col=None`,`skipinitialspace=False`)
- filepath_or_buffer: Put ili URL s podacima
- sep = ',': Definirajte graničnik koji će se koristiti
- `names = None`: Dajte naziv stupcima. Ako skup podataka sadrži deset stupaca, morate proslijediti deset imena
- `index_col = Nijedan`: Ako je odgovor da, prvi se stupac koristi kao indeks retka
- `skipinitialspace = False`: preskoči razmake nakon graničnika.
Za više informacija o readcsv (), provjerite službenu dokumentaciju
https://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_csv.html.
Razmotrite sljedeći primjer
## 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
Izlaz:
(32561, 15)
Grupno
Jednostavan način za prikaz podataka je korištenje metode groupby. Ova metoda može vam pomoći u sažimanju podataka po skupinama. Ispod je popis metoda dostupnih s groupby:
- brojati: brojati
- min: min
- maks .: maks
- znači: znači
- medijan: medijan
- standardna devijacija: sdt
- itd
Unutar groupby (), možete koristiti stupac koji želite primijeniti na metodu.
Pogledajmo jedno grupiranje s nizom podataka za odrasle. Dobit ćete srednju vrijednost svih kontinuiranih varijabli prema vrsti prihoda, tj. Iznad 50k ili ispod 50k
df_train.groupby(['label']).mean()
dob | fnlwgt | broj_obrazovanja | kapitalni dobitak | gubitak_kapitala | sati_tjedan | |
označiti | ||||||
<= 50K | 36,783738 | 190340.86517 | 9,595065 | 148,752468 | 53,142921 | 38,840210 |
> 50.000 | 44,249841 | 188005,00000 | 11.611657 | 4006,142456 | 195,001530 | 45,473026 |
Možete dobiti minimalnu dob prema vrsti kućanstva
df_train.groupby (['oznaka']) ['dob']. min ()
label<=50K 17>50K 19Name: age, dtype: int64
Također možete grupirati po više stupaca. Na primjer, možete dobiti maksimalni kapitalni dobitak prema vrsti kućanstva i bračnom statusu.
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
Možete stvoriti zaplet slijedeći grupu. Jedan od načina to je korištenje parcele nakon grupiranja.
Da biste stvorili izvrsniju parcelu, upotrijebit ćete unstack () nakon mean () tako da imate isti indeks na više razina ili ćete vrijednosti pridružiti prihodima manjim od 50k i višim od 50k. U ovom slučaju, radnja će imati dvije skupine umjesto 14 (2 * 7).
Ako koristite Jupyter bilježnicu, obavezno dodajte% matplotlib inline, u suprotnom se neće prikazati nijedna parcela
%matplotlib inlinedf_plot = df_train.groupby(['label', 'marital'])['capital_gain'].mean().unstack()df_plot