Importați date CSV utilizând Pandas.read_csv ()

Cuprins:

Anonim

În acest tutorial, veți învăța:

  • Importați CSV
  • A se grupa cu

Importați CSV

În timpul tutorialului TensorFlow, veți utiliza setul de date pentru adulți. Este adesea folosit cu sarcina de clasificare. Este disponibil în acest URL https://archive.ics.uci.edu/ml/machine-learning-databases/adult/adult.data

Datele sunt stocate într-un format CSV. Acest set de date include opt variabile categorice:

Acest set de date include opt variabile categorice:

  • clasa de lucru
  • educaţie
  • marital
  • ocupaţie
  • relaţie
  • rasă
  • sex
  • tara de origine

în plus, șase variabile continue:

  • vârstă
  • fnlwgt
  • număr_educare
  • câștig de capital
  • pierderea_capitalului

ore_saptamana

Pentru a importa un set de date CSV, puteți utiliza obiectul pd.read_csv (). Argumentul de bază din interior este:

Sintaxă:

pandas.read_csv(filepath_or_buffer,sep=', ',`names=None`,`index_col=None`,`skipinitialspace=False`)
  • filepath_or_buffer: Calea sau adresa URL cu datele
  • sep = ',': Definiți delimitatorul de utilizat
  • `names = None`: denumiți coloanele. Dacă setul de date are zece coloane, trebuie să treceți zece nume
  • `index_col = None`: Dacă da, prima coloană este utilizată ca index de rând
  • `skipinitialspace = False`: Salt spații după delimitator.

Pentru mai multe informații despre readcsv (), vă rugăm să consultați documentația oficială

https://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_csv.html.

Luați în considerare următorul exemplu

## 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

Ieșire:

(32561, 15)

A se grupa cu

O modalitate ușoară de a vedea datele este utilizarea metodei groupby. Această metodă vă poate ajuta să rezumați datele pe grupuri. Mai jos este o listă a metodelor disponibile cu groupby:

  • conta: conta
  • min: min
  • max: max
  • mean: mean
  • median: median
  • abaterea standard: sdt
  • etc.

În interiorul grupului (), puteți utiliza coloana pe care doriți să aplicați metoda.

Să aruncăm o privire la o singură grupare cu setul de date pentru adulți. Veți obține media tuturor variabilelor continue în funcție de tipul de venit, adică peste 50k sau sub 50k

df_train.groupby(['label']).mean() 
vârstă fnlwgt număr_educare câștig de capital pierderea_capitalului ore_saptamana
eticheta
<= 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

Puteți obține vârsta minimă după tipul de gospodărie

df_train.groupby (['eticheta']) ['vârsta']. min ()

label<=50K 17>50K 19Name: age, dtype: int64 

De asemenea, puteți grupa după mai multe coloane. De exemplu, puteți obține câștigul de capital maxim în funcție de tipul gospodăriei și de starea civilă.

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

Puteți crea un complot după grupul. O modalitate de a face acest lucru este să folosiți un complot după grupare.

Pentru a crea un grafic mai excelent, veți utiliza unstack () după mean () astfel încât să aveți același indice pe mai multe niveluri sau să vă alăturați valorilor cu venituri mai mici de 50k și peste 50k. În acest caz, complotul va avea două grupuri în loc de 14 (2 * 7).

Dacă utilizați Jupyter Notebook, asigurați-vă că adăugați% matplotlib inline, altfel, nu va fi afișat nici un complot

%matplotlib inlinedf_plot = df_train.groupby(['label', 'marital'])['capital_gain'].mean().unstack()df_plot