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

Metoda pandy groupby() Příklad

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.