Pandy read_csv() s příkladem
Import CSV v Pandas
Během tutoriálu TensorFlow budete používat datovou sadu pro dospělé. Často se používá s klasifikační úlohou. Je k dispozici na této adrese URL https://archive.ics.uci.edu/ml/machine-learning-databases/adult/adult.data
Data jsou uložena ve formátu CSV. Tato datová sada obsahuje osm kategorických proměnných:
Tato datová sada obsahuje 8 kategorických proměnných:
- pracovní třída
- vzdělání
- manželský
- povolání
- vztah
- závod
- pohlaví
- rodná země
A 6 spojitých proměnných:
- stáří
- fnlwgt
- vzdělání_číslo
- kapitálový zisk
- kapitálová_ztráta
- hodiny_týden
Metoda Pandas read_csv().
Chcete-li importovat datovou sadu CSV, můžete použít objekt pd.read_csv(). Základní argument uvnitř je:
Syntaxe pandy read_csv().
pandas.read_csv(filepath_or_buffer,sep=', ',`names=None`,`index_col=None`,`skipinitialspace=False`)
- filepath_or_buffer: Cesta nebo URL s daty
- sep=', ': Definujte oddělovač, který se má použít
- `jména=Žádné`: Pojmenujte sloupce. Pokud má datová sada deset sloupců, musíte předat deset jmen
- `index_col=None`: Pokud ano, první sloupec se použije jako index řádku
- `skipinitialspace=False`: Přeskočit mezery za oddělovačem.
Další informace o read_csv() naleznete v oficiální dokumentaci:
https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.read_csv.html
Pandy read_csv() Příklad
## 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
Výstup:
(32561, 15)
Metoda pandy groupby().
Snadný způsob, jak zobrazit data, je použít metodu groupby. Tato metoda vám může pomoci shrnout data podle skupin. Níže je uveden seznam metod dostupných pomocí metody groupby():
- počítat: počítat
- min: min
- max: max
- znamenat: znamenat
- medián: medián
- směrodatná odchylka: sdt
- atd.
Uvnitř groupby() můžete použít sloupec, na který chcete metodu použít.
Podívejme se na jedno seskupení s datovou sadou pro dospělé. Získáte průměr všech spojitých proměnných podle typu příjmu, tj. nad 50 50 nebo pod XNUMX XNUMX:
df_train.groupby(['label']).mean()
štítek | stáří | fnlwgt | vzdělání_číslo | kapitálový zisk | kapitálová_ztráta | hodiny_týden |
---|---|---|---|---|---|---|
<= 50 tis | 36.783738 | 190340.86517 | 9.595065 | 148.752468 | 53.142921 | 38.840210 |
> 50 XNUMX tis | 44.249841 | 188005.00000 | 11.611657 | 4006.142456 | 195.001530 | 45.473026 |
Minimální věk můžete získat podle typu domácnosti:
df_train.groupby(['label'])['age'].min() label <=50K 17 >50K 19 Name: age, dtype: int64
Můžete také seskupit podle více sloupců. Například můžete získat maximální kapitálový zisk podle typu domácnosti a rodinného stavu.
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
Můžete vytvořit graf podle skupiny. Jedním ze způsobů, jak toho dosáhnout, je použít graf po seskupení.
Chcete-li vytvořit dokonalejší graf, použijete unstack() po mean(), abyste měli stejný víceúrovňový index, nebo spojíte hodnoty podle příjmů nižších než 50k a vyšších než 50k. V tomto případě bude mít pozemek dvě skupiny místo 14 (2*7).
Pokud používáte Jupyter zápisník, nezapomeňte přidat %matplotlib inline, jinak se nezobrazí žádný graf
%matplotlib inline df_plot = df_train.groupby(['label', 'marital'])['capital_gain'].mean().unstack() df_plot
Shrnutí
- Chcete-li importovat datovou sadu CSV do Pandy, můžete použít objekt pd.read_csv().
- Metoda groupby() vám může pomoci shrnout data podle skupin.
- Můžete také seskupit podle více sloupců. Například můžete získat maximální kapitálový zisk podle typu domácnosti a rodinného stavu.