Panda read_csv() con Esempio
Importa CSV in Panda
Durante il tutorial di TensorFlow, utilizzerai il set di dati per adulti. Viene spesso utilizzato con il compito di classificazione. È disponibile in questo URL https://archive.ics.uci.edu/ml/machine-learning-databases/adult/adult.data
I dati vengono archiviati in formato CSV. Questo set di dati include otto variabili categoriali:
Questo set di dati include 8 variabili categoriali:
- classe operaia
- continua
- coniugale
- occupazione
- rapporto
- gara
- sesso
- Paese d'origine
E 6 variabili continue:
- fnlwgt
- numero_istruzione
- plusvalenza
- perdita_capitale
- ore_settimana
Metodo read_csv() di Panda
Per importare un set di dati CSV, è possibile utilizzare l'oggetto pd.read_csv(). L'argomento di base all'interno è:
Panda read_csv() Sintassi
pandas.read_csv(filepath_or_buffer,sep=', ',`names=None`,`index_col=None`,`skipinitialspace=False`)
- percorso_file_o_buffer: percorso o URL con i dati
- set=', ': definire il delimitatore da utilizzare
- `nomi=Nessuno`: Assegna un nome alle colonne. Se il set di dati ha dieci colonne, è necessario passare dieci nomi
- `index_col=Nessuno`: Se sì, la prima colonna viene utilizzata come indice di riga
- `skipinitialspace=Falso`: Salta gli spazi dopo il delimitatore.
Per ulteriori informazioni su read_csv(), consultare la documentazione ufficiale:
https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.read_csv.html
Panda read_csv() Esempio
## Import csv import pandas as pd ## Define path data COLUMNS = ['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)
Metodo panda groupby()
Un modo semplice per visualizzare i dati è utilizzare il metodo groupby. Questo metodo può aiutarti a riepilogare i dati per gruppo. Di seguito è riportato un elenco di metodi disponibili con il metodo groupby():
- contare: contare
- minimo: minimo
- massimo: massimo
- significare: significare
- mediano: mediano
- deviazione standard: sdt
- eccetera
All'interno di groupby(), puoi utilizzare la colonna a cui desideri 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 per tipo di entrate, ovvero superiore a 50 o inferiore a 50:
df_train.groupby(['label']).mean()
etichetta | fnlwgt | numero_istruzione | plusvalenza | perdita_capitale | ore_settimana | |
---|---|---|---|---|---|---|
<= 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 tipologia di nucleo familiare:
df_train.groupby(['label'])['age'].min() label <=50K 17 >50K 19 Name: age, dtype: int64
Puoi anche raggruppare per più colonne. Ad esempio, puoi ottenere la plusvalenza massima in base al tipo di nucleo familiare e allo stato civile.
df_train.groupby(['label', 'marital'])['capital_gain'].max() label marital <=50K Divorced 34095 Married-AF-spouse 2653 Married-civ-spouse 41310 Married-spouse-absent 6849 Never-married 34095 Separated 7443 Widowed 6849 >50K Divorced 99999 Married-AF-spouse 7298 Married-civ-spouse 99999 Married-spouse-absent 99999 Never-married 99999 Separated 99999 Widowed 99999 Name: capital_gain, dtype: int64
Puoi creare un grafico seguendo groupby. Un modo per farlo è usare un grafico dopo il raggruppamento.
Per creare una trama più eccellente, utilizzerai unstack() dopo mean() in modo da avere lo stesso indice multilivello oppure unirai i valori in base alle entrate inferiori a 50k e superiori a 50k. In questo caso la trama avrà due gruppi invece di 14 (2*7).
Se si utilizza Jupyter Taccuino, assicurati di aggiungere %matplotlib inline, altrimenti non verrà visualizzato alcun grafico
%matplotlib inline df_plot = df_train.groupby(['label', 'marital'])['capital_gain'].mean().unstack() df_plot
Sommario
- Per importare un set di dati CSV in Pandas, puoi utilizzare l'oggetto pd.read_csv().
- Il metodo groupby() può aiutarti a riepilogare i dati per gruppo.
- Puoi anche raggruppare per più colonne. Ad esempio, puoi ottenere la plusvalenza massima in base al tipo di nucleo familiare e allo stato civile.