Pandas read_csv() avec exemple
Importer CSV dans Pandas
Au cours du didacticiel TensorFlow, vous utiliserez l'ensemble de données pour adultes. 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 8 variables catégorielles :
- classe ouvrière
- l'éducation
- matrimonial
- occupation
- relations
- breed
- sexe
- pays d'origine
Et, 6 variables continues :
- âge
- fnlwgt
- num_education
- gain_capital
- perte_de_capital
- heures_semaine
Méthode Pandas read_csv()
Pour importer un jeu de données CSV, vous pouvez utiliser l'objet pd.read_csv(). L'argument de base à l'intérieur est le suivant :
Syntaxe Pandas read_csv()
pandas.read_csv(filepath_or_buffer,sep=', ',`names=None`,`index_col=None`,`skipinitialspace=False`)
- chemin_fichier_ou_buffer: Chemin ou URL avec les données
- sep=', ': Définissez le délimiteur à utiliser
- `names=Aucun`: Nommez les colonnes. Si l'ensemble de données comporte dix colonnes, vous devez transmettre dix noms
- `index_col=Aucun`: Si oui, la première colonne est utilisée comme index de ligne
- `skipinitialspace=False`: Sauter les espaces après le délimiteur.
Pour plus d'informations sur read_csv(), veuillez consulter la documentation officielle :
https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.read_csv.html
Exemple Pandas read_csv()
## 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
Sortie :
(32561, 15)
Méthode Pandas groupby()
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. Vous trouverez ci-dessous une liste des méthodes disponibles avec la méthode groupby() :
- compter : compter
- minute : minute
- maximum : maximum
- signifier: signifier
- médiane : médiane
- écart type : sdt
- etc
Dans groupby(), vous pouvez utiliser la colonne dans laquelle vous souhaitez appliquer la méthode.
Jetons un coup d'œil à un seul groupe avec l'ensemble de données pour adultes. Vous obtiendrez la moyenne de toutes les variables continues par type de revenus, c'est-à-dire au-dessus de 50 50 ou en dessous de :
df_train.groupby(['label']).mean()
étiquette | âge | fnlwgt | num_education | gain_capital | perte_de_capital | heures_semaine |
---|---|---|---|---|---|---|
<= 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 |
Vous pouvez obtenir l'âge minimum par type de foyer :
df_train.groupby(['label'])['age'].min() label <=50K 17 >50K 19 Name: age, dtype: int64
Vous pouvez également regrouper sur plusieurs colonnes. Par exemple, vous pouvez obtenir une plus-value maximale en fonction du type de ménage et de l'état civil.
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
Vous pouvez créer un tracé suivant groupby. Une façon de procéder consiste à 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 multiniveau, ou vous joindrez les valeurs par revenus inférieurs à 50 50 et supérieurs à 14 2. Dans ce cas, la parcelle comportera deux groupes au lieu de 7 (*).
Si vous utilisez Jupyter Carnets, assurez-vous d'ajouter %matplotlib en ligne, sinon aucun tracé ne sera affiché
%matplotlib inline df_plot = df_train.groupby(['label', 'marital'])['capital_gain'].mean().unstack() df_plot
Résumé
- Pour importer un ensemble de données CSV dans Pandas, vous pouvez utiliser l'objet pd.read_csv().
- La méthode groupby() peut vous aider à résumer les données par groupe.
- Vous pouvez également regrouper sur plusieurs colonnes. Par exemple, vous pouvez obtenir une plus-value maximale en fonction du type de ménage et de l'état civil.