Pandas read_csv() med Exempel

Importera CSV i Pandas

Under TensorFlow-handledningen kommer du att använda vuxendatauppsättningen. Det används ofta med klassificeringsuppgift. Den är tillgänglig i denna URL https://archive.ics.uci.edu/ml/machine-learning-databases/adult/adult.data

Data lagras i ett CSV-format. Denna datauppsättning innehåller åtta kategoriska variabler:

Denna datauppsättning innehåller 8 kategoriska variabler:

  • arbetsklass
  • utbildning
  • äktenskaplig
  • ockupation
  • relation
  • lopp
  • kön
  • hemland

Och 6 kontinuerliga variabler:

  • ålder
  • fnlwgt
  • utbildningsnummer
  • kapitalvinsten
  • kapitalförlust
  • timmar_vecka

Pandas read_csv() Metod

För att importera en CSV-datauppsättning kan du använda objektet pd.read_csv(). Grundargumentet inuti är:

Pandas read_csv() Syntax

pandas.read_csv(filepath_or_buffer,sep=', ',`names=None`,`index_col=None`,`skipinitialspace=False`)
  • filsökväg_eller_buffert: Sökväg eller URL med data
  • sep=', ': Definiera avgränsaren som ska användas
  • `names=Inga`: Namnge kolumnerna. Om datasetet har tio kolumner måste du skicka tio namn
  • `index_col=Ingen`: Om ja, används den första kolumnen som ett radindex
  • `skipinitialspace=False`: Hoppa över mellanslag efter avgränsare.

För mer information om read_csv(), vänligen kontrollera den officiella dokumentationen:

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

Pandas read_csv() Exempel

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

Produktion:

(32561, 15)

Pandas groupby() Metod

Ett enkelt sätt att se data är att använda groupby-metoden. Denna metod kan hjälpa dig att sammanfatta data per grupp. Nedan finns en lista över metoder som är tillgängliga med metoden groupby():

  • räkna: räkna
  • min: min
  • max: max
  • elak elak
  • median: median
  • standardavvikelse: sdt
  • etc

Inuti groupby() kan du använda den kolumn du vill använda metoden.

Låt oss ta en titt på en enskild gruppering med datauppsättningen för vuxna. Du får medelvärdet av alla kontinuerliga variabler efter typ av intäkt, dvs över 50k eller under 50k:

df_train.groupby(['label']).mean()
etikett ålder fnlwgt utbildningsnummer kapitalvinsten kapitalförlust timmar_vecka
<= 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å minimiåldern efter hushållstyp:

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

Du kan också gruppera efter flera kolumner. Du kan till exempel få den maximala kapitalvinsten beroende på hushållstyp och civilstånd.

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 skapa en plot efter groupby. Ett sätt att göra det är att använda en tomt efter grupperingen.

För att skapa en mer utmärkt plot använder du unstack() efter mean() så att du har samma multilevel index, eller så slår du ihop värdena med en intäkt lägre än 50k och över 50k. I det här fallet kommer tomten att ha två grupper istället för 14 (2*7).

Om du använder Jupyter Notebook, se till att lägga till %matplotlib inline, annars kommer ingen plot att visas

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

Pandas groupby() metod Exempel

Sammanfattning

  • För att importera en CSV-datauppsättning i pandas, kan du använda objektet pd.read_csv().
  • Metoden groupby() kan hjälpa dig att sammanfatta data per grupp.
  • Du kan också gruppera efter flera kolumner. Du kan till exempel få den maximala kapitalvinsten beroende på hushållstyp och civilstånd.