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