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.

Saลพmite ovu objavu uz: