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

Esempio del metodo panda groupby()

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.