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