In questo tutorial imparerai:
- Importa CSV
- Raggruppare per
Importa CSV
Durante il tutorial di TensorFlow, utilizzerai il set di dati per adulti. Viene spesso utilizzato con attività di classificazione. È disponibile in questo URL https://archive.ics.uci.edu/ml/machine-learning-databases/adult/adult.data
I dati vengono memorizzati in un formato CSV. Questo set di dati include otto variabili categoriali:
Questo set di dati include otto variabili categoriali:
- classe di lavoro
- formazione scolastica
- coniugale
- occupazione
- relazione
- gara
- sesso
- Paese d'origine
inoltre sei variabili continue:
- età
- fnlwgt
- education_num
- plusvalenza
- capital_loss
ore_settimana
Per importare un set di dati CSV, è possibile utilizzare l'oggetto pd.read_csv (). L'argomento di base all'interno è:
Sintassi:
pandas.read_csv(filepath_or_buffer,sep=', ',`names=None`,`index_col=None`,`skipinitialspace=False`)
- filepath_or_buffer: percorso o URL con i dati
- sep = ',': definisce il delimitatore da utilizzare
- `names = None`: assegna un nome alle colonne. Se il set di dati ha dieci colonne, è necessario passare dieci nomi
- `index_col = None`: Se sì, la prima colonna viene utilizzata come indice di riga
- `skipinitialspace = False`: salta gli spazi dopo il delimitatore.
Per ulteriori informazioni su readcsv (), consultare la documentazione ufficiale
https://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_csv.html.
Considera il seguente esempio
## 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
Produzione:
(32561, 15)
Raggruppare per
Un modo semplice per visualizzare i dati è utilizzare il metodo groupby. Questo metodo può aiutarti a riassumere i dati per gruppo. Di seguito è riportato un elenco di metodi disponibili con groupby:
- count: count
- min: min
- max: max
- mean: mean
- mediana: mediana
- deviazione standard: sdt
- eccetera
All'interno di groupby (), puoi usare la colonna a cui vuoi applicare il metodo.
Diamo un'occhiata a un singolo raggruppamento con il set di dati per adulti. Otterrai la media di tutte le variabili continue in base al tipo di entrate, ovvero superiore a 50.000 o inferiore a 50.000
df_train.groupby(['label']).mean()
età | fnlwgt | education_num | plusvalenza | capital_loss | ore_settimana | |
etichetta | ||||||
<= 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 |
Puoi ottenere l'età minima per tipo di famiglia
df_train.groupby (['label']) ['age']. min ()
label<=50K 17>50K 19Name: age, dtype: int64
Puoi anche raggruppare per più colonne. Ad esempio, puoi ottenere la massima plusvalenza in base al tipo di nucleo familiare e allo stato civile.
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
Puoi creare una trama seguendo groupby. Un modo per farlo è usare una trama dopo il raggruppamento.
Per creare un grafico più eccellente, utilizzerai unstack () dopo mean () in modo da avere lo stesso indice multilivello, oppure unisci i valori per entrate inferiori a 50k e superiori a 50k. In questo caso, la trama avrà due gruppi invece di 14 (2 * 7).
Se usi Jupyter Notebook, assicurati di aggiungere% matplotlib inline, altrimenti non verrà visualizzato nessun grafico
%matplotlib inlinedf_plot = df_train.groupby(['label', 'marital'])['capital_gain'].mean().unstack()df_plot