CSV-gegevens importeren met Pandas.read_csv ()

Inhoudsopgave:

Anonim

In deze tutorial leer je:

  • CSV importeren
  • Groupby

CSV importeren

Tijdens de TensorFlow-tutorial gebruik je de dataset voor volwassenen. Het wordt vaak gebruikt bij classificatietaken. Het is beschikbaar in deze URL https://archive.ics.uci.edu/ml/machine-learning-databases/adult/adult.data

De gegevens worden opgeslagen in een CSV-indeling. Deze dataset bevat acht categorische variabelen:

Deze dataset bevat acht categorische variabelen:

  • werkklas
  • onderwijs
  • echtelijk
  • bezetting
  • relatie
  • ras
  • seks
  • geboorteland

bovendien zes continue variabelen:

  • leeftijd
  • fnlwgt
  • onderwijs_getal
  • capital_gain
  • capital_loss

uur_week

Om een ​​CSV-dataset te importeren, kunt u het object pd.read_csv () gebruiken. Het basisargument binnenin is:

Syntaxis:

pandas.read_csv(filepath_or_buffer,sep=', ',`names=None`,`index_col=None`,`skipinitialspace=False`)
  • filepath_or_buffer: Pad of URL met de gegevens
  • sep = ',': Definieer het te gebruiken scheidingsteken
  • `names = None`: Geef de kolommen een naam. Als de dataset tien kolommen heeft, moet u tien namen doorgeven
  • `index_col = None`: Zo ja, dan wordt de eerste kolom gebruikt als een rij-index
  • `skipinitialspace = False`: Sla spaties over na het scheidingsteken.

Raadpleeg de officiële documentatie voor meer informatie over readcsv ()

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

Beschouw het volgende voorbeeld eens

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

Uitgang:

(32561, 15)

Groupby

Een gemakkelijke manier om de gegevens te zien, is door de groupby-methode te gebruiken. Deze methode kan u helpen om de gegevens per groep samen te vatten. Hieronder vindt u een lijst met methoden die beschikbaar zijn met groupby:

  • count: tel
  • min: min
  • max: max
  • bedoel: bedoel
  • mediaan: mediaan
  • standaarddeviatie: sdt
  • enz

Binnen groupby () kunt u de kolom gebruiken waarop u de methode wilt toepassen.

Laten we eens kijken naar een enkele groepering met de gegevensset voor volwassenen. U krijgt het gemiddelde van alle continue variabelen op type inkomsten, dwz boven de 50k of onder de 50k

df_train.groupby(['label']).mean() 
leeftijd fnlwgt onderwijs_getal capital_gain capital_loss uur_week
label
<= 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

U kunt de minimumleeftijd krijgen per type huishouden

df_train.groupby (['label']) ['leeftijd']. min ()

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

U kunt ook op meerdere kolommen groeperen. U kunt bijvoorbeeld de maximale vermogenswinst krijgen op basis van het type huishouden en de burgerlijke staat.

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

U kunt een plot maken na groupby. Een manier om dit te doen, is door een plot na de groepering te gebruiken.

Om een ​​meer uitstekende plot te maken, gebruik je unstack () na mean () zodat je dezelfde multilevel-index hebt, of voeg je de waarden samen met een omzet lager dan 50k en hoger dan 50k. In dit geval heeft de plot twee groepen in plaats van 14 (2 * 7).

Als u Jupyter Notebook gebruikt, zorg er dan voor dat u% matplotlib inline toevoegt, anders wordt er geen plot weergegeven

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