Pandas read_csv() med Eksempel

Importer CSV i Pandas

Under TensorFlow-tutorialen vil du bruge voksendatasættet. Det bruges ofte med klassifikationsopgave. Den er tilgængelig i denne URL https://archive.ics.uci.edu/ml/machine-learning-databases/adult/adult.data

Dataene gemmes i et CSV-format. Dette datasæt indeholder otte kategoriske variabler:

Dette datasæt indeholder 8 kategoriske variable:

  • arbejdsklasse
  • uddannelse
  • ægteskabelig
  • besættelse
  • forhold
  • løb
  • køn
  • oprindelses land

Og 6 kontinuerte variable:

  • alder
  • fnlwgt
  • uddannelsesnummer
  • kapitalgevinst
  • kapitaltab
  • timer_uge

Pandas read_csv() metode

For at importere et CSV-datasæt kan du bruge objektet pd.read_csv(). Det grundlæggende argument indeni er:

Pandas read_csv() Syntaks

pandas.read_csv(filepath_or_buffer,sep=', ',`names=None`,`index_col=None`,`skipinitialspace=False`)
  • filsti_eller_buffer: Sti eller URL med dataene
  • sep=', ': Definer den afgrænsning, der skal bruges
  • `navne=Ingen`: Navngiv kolonnerne. Hvis datasættet har ti kolonner, skal du videregive ti navne
  • `index_col=Ingen`: Hvis ja, bruges den første kolonne som et rækkeindeks
  • `skipinitialspace=False`: Spring mellemrum over efter skilletegn.

For mere information om read_csv(), tjek venligst den officielle dokumentation:

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

Pandas read_csv() Eksempel

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

Pandas groupby() Metode

En nem måde at se data på er at bruge groupby-metoden. Denne metode kan hjælpe dig med at opsummere dataene efter gruppe. Nedenfor er en liste over tilgængelige metoder med groupby() metoden:

  • tælle: tælle
  • min: min
  • max: max
  • betyde: betyde
  • median: median
  • standardafvigelse: sdt
  • etc.

Inde i groupby() kan du bruge den kolonne, du ønsker, til at anvende metoden.

Lad os se på en enkelt gruppering med voksendatasættet. Du får gennemsnittet af alle de kontinuerlige variabler efter indtægtstype, dvs. over 50k eller under 50k:

df_train.groupby(['label']).mean()
label alder fnlwgt uddannelsesnummer kapitalgevinst kapitaltab timer_uge
<=50 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

Du kan få minimumsalderen efter husstandstype:

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

Du kan også gruppere efter flere kolonner. For eksempel kan du få den maksimale kapitalgevinst i henhold til husstandstype og civilstand.

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

Du kan oprette et plot efter groupby. En måde at gøre det på er at bruge et plot efter grupperingen.

For at skabe et mere fremragende plot, vil du bruge unstack() efter mean(), så du har det samme multilevel-indeks, eller du forbinder værdierne med en omsætning lavere end 50k og over 50k. I dette tilfælde vil plottet have to grupper i stedet for 14 (2*7).

Hvis du bruger Jupyter Notesbog, sørg for at tilføje %matplotlib inline, ellers vil intet plot blive vist

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

Pandas groupby() metode Eksempel

Resumé

  • For at importere et CSV-datasæt i pandas, kan du bruge objektet pd.read_csv().
  • groupby()-metoden kan hjælpe dig med at opsummere dataene efter gruppe.
  • Du kan også gruppere efter flere kolonner. For eksempel kan du få den maksimale kapitalgevinst i henhold til husstandstype og civilstand.