Importer des données CSV à l'aide de Pandas.read_csv ()

Table des matières:

Anonim

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