Pandas read_csv() s primjerom

Uvezi CSV u Pandas

Tijekom vodiča za TensorFlow koristit ćete skup podataka za odrasle. Često se koristi sa zadatkom klasifikacije. Dostupno je na ovom URL-u https://archive.ics.uci.edu/ml/machine-learning-databases/adult/adult.data

Podaci se pohranjuju u CSV formatu. Ovaj skup podataka uključuje osam kategoričkih varijabli:

Ovaj skup podataka uključuje 8 kategoričkih varijabli:

  • radna klasa
  • obrazovanje
  • bračni
  • okupacija
  • odnos
  • utrka
  • seks
  • rodna_zemlja

I, 6 kontinuiranih varijabli:

  • starost
  • fnlwgt
  • obrazovanje_br
  • kapitalni dobitak
  • gubitak_kapitala
  • sati_tjedan

Metoda Pandas read_csv().

Za uvoz CSV skupa podataka, možete koristiti objekt pd.read_csv(). Osnovni argument unutra je:

Pandas read_csv() Sintaksa

pandas.read_csv(filepath_or_buffer,sep=', ',`names=None`,`index_col=None`,`skipinitialspace=False`)
  • filepath_or_buffer: Put ili URL s podacima
  • ruj=', ': Definirajte graničnik koji ćete koristiti
  • `imena=Ništa`: Imenujte stupce. Ako skup podataka ima deset stupaca, trebate proslijediti deset imena
  • `index_col=Ništa`: Ako da, prvi stupac koristi se kao indeks retka
  • `skipinitialspace=False`: Preskoči razmake nakon razdjelnika.

Za više informacija o read_csv(), provjerite službenu dokumentaciju:

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

Pandas read_csv() Primjer

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

Izlaz:

(32561, 15)

Pandas groupby() metoda

Jednostavan način da vidite podatke je korištenje metode groupby. Ova vam metoda može pomoći da sažmete podatke po skupinama. Ispod je popis metoda dostupnih s metodom groupby():

  • brojati: brojati
  • min: min
  • max: maks
  • značiti: značiti
  • medijan: medijan
  • standardna devijacija: sdt
  • itd

Unutar groupby(), možete koristiti stupac na koji želite primijeniti metodu.

Pogledajmo jedno grupiranje sa skupom podataka za odrasle. Dobit ćete srednju vrijednost svih kontinuiranih varijabli prema vrsti prihoda, tj. iznad 50 tisuća ili ispod 50 tisuća:

df_train.groupby(['label']).mean()
oznaka starost fnlwgt obrazovanje_br kapitalni dobitak gubitak_kapitala sati_tjedan
<= 50K 36.783738 190340.86517 9.595065 148.752468 53.142921 38.840210
> 50 K 44.249841 188005.00000 11.611657 4006.142456 195.001530 45.473026

Možete dobiti minimalnu dob prema vrsti kućanstva:

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

Također možete grupirati prema više stupaca. Na primjer, možete ostvariti maksimalnu kapitalnu dobit prema vrsti kućanstva i bračnom statusu.

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

Možete stvoriti parcelu slijedeći groupby. Jedan od načina da to učinite je korištenje dijagrama nakon grupiranja.

Da biste stvorili izvrsniji dijagram, upotrijebit ćete unstack() nakon mean() tako da imate isti višerazinski indeks ili da pridružite vrijednosti prema prihodu nižem od 50 tisuća i iznad 50 tisuća. U ovom slučaju, parcela će imati dvije grupe umjesto 14 (2*7).

Ako koristite Jupyter Bilježnica, svakako dodajte %matplotlib inline, inače se neće prikazati iscrtavanje

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

Primjer metode Pandas groupby().

rezime

  • Za uvoz CSV skupa podataka pande, možete koristiti objekt pd.read_csv().
  • Metoda groupby() može vam pomoći da sažmete podatke po grupama.
  • Također možete grupirati prema više stupaca. Na primjer, možete ostvariti maksimalnu kapitalnu dobit prema vrsti kućanstva i bračnom statusu.