Panda's read_csv() met voorbeeld

Importeer CSV in Panda's

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

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

Deze dataset bevat 8 categorische variabelen:

  • werkklas
  • onderwijs
  • huwelijks-
  • bezetting
  • relatie
  • race
  • geslacht
  • geboorteland

En 6 continue variabelen:

  • leeftijd
  • fnlwgt
  • onderwijs_num
  • kapitaal_winst
  • kapitaal_verlies
  • uren_week

Panda's read_csv() Methode

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

Panda's read_csv() Syntaxis

pandas.read_csv(filepath_or_buffer,sep=', ',`names=None`,`index_col=None`,`skipinitialspace=False`)
  • bestandspad_of_buffer: Pad of URL met de gegevens
  • sep=', ': definieer het scheidingsteken dat u wilt gebruiken
  • `namen=Geen`: Geef de kolommen een naam. Als de dataset tien kolommen heeft, moet u tien namen doorgeven
  • `index_col=Geen`: Zo ja, dan wordt de eerste kolom gebruikt als rijindex
  • `skipinitialspace=False`: Spaties na scheidingsteken overslaan.

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

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

Panda's read_csv() Voorbeeld

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

Output:

(32561, 15)

Panda's groupby() Methode

Een eenvoudige manier om de data te bekijken is door de groupby-methode te gebruiken. Deze methode kan u helpen de data per groep samen te vatten. Hieronder vindt u een lijst met methoden die beschikbaar zijn met de groupby()-methode:

  • tellen: tellen
  • min: min
  • maximaal: maximaal
  • bedoel: gemeen
  • mediaan: mediaan
  • standaardafwijking: sdt
  • etc

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

Laten we eens kijken naar een enkele groepering met de dataset voor volwassenen. U krijgt het gemiddelde van alle continue variabelen per type omzet, dat wil zeggen boven de 50 of onder de 50:

df_train.groupby(['label']).mean()
label leeftijd fnlwgt onderwijs_num kapitaal_winst kapitaal_verlies uren_week
<= 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

Je kunt de minimumleeftijd per huishoudenstype krijgen:

df_train.groupby(['label'])['age'].min()
label
<=50K    17
>50K     19
Name: age, dtype: int64

U kunt ook groeperen op meerdere kolommen. 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                 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

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

Om een ​​beter plot te creëren, gebruik je unstack() na mean() zodat je dezelfde index op meerdere niveaus hebt, of je voegt de waarden samen bij opbrengsten lager dan 50k en hoger dan 50k. In dit geval zal de plot twee groepen hebben in plaats van 14 (2*7).

Als u gebruik maken van Jupyter NotitieboekZorg ervoor dat u %matplotlib inline toevoegt, anders wordt er geen plot weergegeven

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

Panda's groupby() methode Voorbeeld

Samenvatting

  • Om een ​​CSV-gegevensset te importeren in Pandas, kunt u het object pd.read_csv() gebruiken.
  • Met de groupby()-methode kunt u de gegevens per groep samenvatten.
  • U kunt ook groeperen op meerdere kolommen. U kunt bijvoorbeeld de maximale vermogenswinst krijgen op basis van het type huishouden en de burgerlijke staat.