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