Pandas read_csv() med Eksempel

Importer CSV i Pandas

Under TensorFlow-opplæringen vil du bruke voksendatasettet. Det brukes ofte med klassifiseringsoppgave. Den er tilgjengelig i denne URL-en https://archive.ics.uci.edu/ml/machine-learning-databases/adult/adult.data

Dataene lagres i et CSV-format. Dette datasettet inkluderer åtte kategoriske variabler:

Dette datasettet inkluderer 8 kategoriske variabler:

  • arbeidsklasse
  • utdanning
  • ekteskapelig
  • okkupasjon
  • forholdet
  • rase
  • kjønn
  • native_country

Og 6 kontinuerlige variabler:

  • alder
  • fnlwgt
  • utdanning_nummer
  • kapitalgevinst
  • kapitaltap
  • timer_uke

Pandas read_csv() Metode

For å importere et CSV-datasett kan du bruke objektet pd.read_csv(). Det grunnleggende argumentet inni er:

Pandas read_csv() Syntaks

pandas.read_csv(filepath_or_buffer,sep=', ',`names=None`,`index_col=None`,`skipinitialspace=False`)
  • filbane_eller_buffer: Bane eller URL med dataene
  • sep=', ': Definer skilletegnet som skal brukes
  • `names=Ingen`: Navngi kolonnene. Hvis datasettet har ti kolonner, må du sende ti navn
  • `index_col=Ingen`: Hvis ja, brukes den første kolonnen som en radindeks
  • `skipinitialspace=False`: Hopp over mellomrom etter skilletegn.

For mer informasjon om read_csv(), vennligst sjekk den offisielle dokumentasjonen:

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

Utgang:

(32561, 15)

Pandas groupby() Metode

En enkel måte å se dataene på er å bruke groupby-metoden. Denne metoden kan hjelpe deg med å oppsummere dataene etter gruppe. Nedenfor er en liste over metoder tilgjengelig med groupby()-metoden:

  • telle: telle
  • min: min
  • maks: maks
  • mener: mener
  • median: median
  • standardavvik: sdt
  • etc

Inne i groupby(), kan du bruke kolonnen du vil bruke metoden.

La oss ta en titt på en enkelt gruppering med voksendatasettet. Du vil få gjennomsnittet av alle de kontinuerlige variablene etter type inntekt, dvs. over 50k eller under 50k:

df_train.groupby(['label']).mean()
etikett alder fnlwgt utdanning_nummer kapitalgevinst kapitaltap timer_uke
<= 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

Du kan få minimumsalderen etter husholdningstype:

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

Du kan også gruppere etter flere kolonner. For eksempel kan du få maksimal kapitalgevinst i henhold til husholdningstype og sivilstand.

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 lage et plott etter groupby. En måte å gjøre det på er å bruke et plott etter grupperingen.

For å lage et mer utmerket plot, vil du bruke unstack() etter mean() slik at du har den samme indeksen på flere nivåer, eller du slår sammen verdiene med omsetning lavere enn 50k og over 50k. I dette tilfellet vil tomten ha to grupper i stedet for 14 (2*7).

Hvis du bruker Jupyter bærbare, sørg for å legge til %matplotlib inline, ellers vil ingen plott bli vist

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

Pandas groupby() metode Eksempel

Sammendrag

  • For å importere et CSV-datasett inn pandaer, kan du bruke objektet pd.read_csv().
  • groupby()-metoden kan hjelpe deg med å oppsummere dataene etter gruppe.
  • Du kan også gruppere etter flere kolonner. For eksempel kan du få maksimal kapitalgevinst i henhold til husholdningstype og sivilstand.