Dans ce tutoriel, vous apprendrez:
- Importer CSV
- Par groupe
Importer CSV
Au cours du didacticiel TensorFlow, vous utiliserez l'ensemble de données adulte. Il est souvent utilisé avec une tâche de classification. Il est disponible dans cette URL https://archive.ics.uci.edu/ml/machine-learning-databases/adult/adult.data
Les données sont stockées au format CSV. Cet ensemble de données comprend huit variables catégorielles:
Cet ensemble de données comprend huit variables catégorielles:
- classe de travail
- éducation
- matrimonial
- Occupation
- relation
- course
- sexe
- pays d'origine
de plus, six variables continues:
- âge
- fnlwgt
- education_num
- capital_gain
- capital_loss
heures_semaine
Pour importer un ensemble de données CSV, vous pouvez utiliser l'objet pd.read_csv (). L'argument de base à l'intérieur est:
Syntaxe:
pandas.read_csv(filepath_or_buffer,sep=', ',`names=None`,`index_col=None`,`skipinitialspace=False`)
- filepath_or_buffer: chemin ou URL avec les données
- sep = ',': Définit le délimiteur à utiliser
- `names = None`: Nommez les colonnes. Si l'ensemble de données comporte dix colonnes, vous devez transmettre dix noms
- `index_col = None`: Si oui, la première colonne est utilisée comme index de ligne
- `skipinitialspace = False`: saute les espaces après le délimiteur.
Pour plus d'informations sur readcsv (), veuillez consulter la documentation officielle
https://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_csv.html.
Prenons l'exemple suivant
## Import csvimport pandas as pd## Define path dataCOLUMNS = ['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
Production:
(32561, 15)
Par groupe
Un moyen simple de voir les données consiste à utiliser la méthode groupby. Cette méthode peut vous aider à résumer les données par groupe. Voici une liste des méthodes disponibles avec groupby:
- count: count
- min: min
- max: max
- signifie: moyen
- médiane: médiane
- écart type: sdt
- etc
Dans groupby (), vous pouvez utiliser la colonne à laquelle vous souhaitez appliquer la méthode.
Jetons un coup d'œil à un seul regroupement avec l'ensemble de données adulte. Vous obtiendrez la moyenne de toutes les variables continues par type de revenus, c'est-à-dire au-dessus de 50k ou en dessous de 50k
df_train.groupby(['label']).mean()
âge | fnlwgt | education_num | capital_gain | capital_loss | heures_semaine | |
étiqueter | ||||||
<= 50 000 | 36,783738 | 190340.86517 | 9.595065 | 148,752468 | 53.142921 | 38,840210 |
> 50 000 | 44.249841 | 188005.00000 | 11,611657 | 4006.142456 | 195,001530 | 45,473026 |
Vous pouvez obtenir l'âge minimum par type de ménage
df_train.groupby (['label']) ['age']. min ()
label<=50K 17>50K 19Name: age, dtype: int64
Vous pouvez également regrouper par plusieurs colonnes. Par exemple, vous pouvez obtenir le gain en capital maximum en fonction du type de ménage et de l'état matrimonial.
df_train.groupby(['label', 'marital'])['capital_gain'].max()label marital<=50K Divorced 34095Married-AF-spouse 2653Married-civ-spouse 41310Married-spouse-absent 6849Never-married 34095Separated 7443Widowed 6849>50K Divorced 99999Married-AF-spouse 7298Married-civ-spouse 99999Married-spouse-absent 99999Never-married 99999Separated 99999Widowed 99999Name: capital_gain, dtype: int64
Vous pouvez créer un tracé suivant groupby. Une façon de le faire est d'utiliser un tracé après le regroupement.
Pour créer un tracé plus excellent, vous utiliserez unstack () après mean () afin d'avoir le même index à plusieurs niveaux, ou vous joindrez les valeurs par des revenus inférieurs à 50k et supérieurs à 50k. Dans ce cas, le graphique aura deux groupes au lieu de 14 (2 * 7).
Si vous utilisez Jupyter Notebook, assurez-vous d'ajouter% matplotlib en ligne, sinon, aucun tracé ne sera affiché
%matplotlib inlinedf_plot = df_train.groupby(['label', 'marital'])['capital_gain'].mean().unstack()df_plot