Importa dati CSV utilizzando Pandas.read_csv ()

Sommario:

Anonim

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