Pandas

Pandas permet d’utiliser et de manipuler des données dans un format de tableau avec chaque colonne qui correspond à une propriété et chaque ligne à un élément.

Sur cette page tu trouveras les fonctions de bases pour utiliser pandas :

Tu trouveras également ici la CheatSheet qui résume toutes les fonctions utiles de pandas et sert de point d’entrée de la documentation.

Bases de manipulation d’un dataframe

Import de la librairie

import pandas as pd

Ouvrir un CSV

data = pd.read_csv('fichier.csv')

Si tu le souhaites tu peux aussi spécifier le caractère utilisé pour séparer les colonnes.

data = pd.read_csv('fichier.csv',sep=";")

Ou indiquer quelle colonne contient les index

data = pd.read_csv('fichier.csv',index_col=0)

Créer un dataframe vide

data = pd.DataFrame()

Fusionner 2 dataframes

data = data1.join(data2)

Accèder et afficher les données

Afficher les n premières lignes

Pense à remplacer n par le nombre de lignes que tu veux afficher

data.head(n) 

Afficher n lignes au hasard

Pense à remplacer n par le nombre de lignes que tu veux afficher

data.sample(n) 

Afficher la forme du tableau

Cela nous permet de récupérer le nombre de lignes et le nombre de colonnes.

data.shape

Afficher le type des données contenues dans chacune des colonnes

data.info()

Afficher les intitulés des colonnes

print(data.columns)

Récupérer uniquement certaines colonnes

data_extrait = data[['nom_colonne1' , 'nom_colonne2']]

Récupérer la première valeur d’une colonne spécifique

Ici 0 représente le numéro de la première ligne

data['nom_colonne'][0]

Renommer une colonne

data = data.rename(columns={'ancien_nom1':'nouveau_nom1','ancien_nom2':'nouveau_nom2'})

Récupérer les valeurs uniques d’une colonne (Supprimer les doublons)

valeurs_uniques = df['colonne1'].unique()

Remplacer la valeur d’un élément dans une colonne

data.loc[data['colonne1'] == "nom-de-l-element",'colonne1'] = nouveau_nom_de_l_element

Filtrer une colonne pour obtenir uniquement les lignes ayant une valeur précise

data[['colonne1','colonne2','colonne3']].query('colonne3 == 0')

Supprimer les lignes contenant une cellule vide ( Nan)

data = data.dropna()

Itérer sur les différentes lignes d’un dataframe

Tu peux faire une boucle for each en récupérant l’index (le numéro) de la ligne et son contenu

for index,ligne in data.iterrows() :
#faire des trucs

Données statistiques

Dans cette partie tu trouveras comment récupérer des informations statistiques sur tes données comme la moyenne, le minimum, le maximum etc.

Describe

La fonction describe() permet d’afficher en un seul appel toutes les données statistiques sur l’ensemble du dataset

data.describe()

Voici les différents éléments statistiques retournés et leur sens rapide :

  • count : nombre de données
  • mean : moyenne des valeurs
  • std : écart-type des valeurs de ces colonnes, c’est à dire « quel est l’écart moyen par rapport à la moyenne »
  • min : valeur minimale
  • 25% : premier quartile : il y a 25% des valeurs qui sont inférieures et 25% des valeurs qui sont supérieures à cette valeur
  • 50% : valeur médiane : il y a 50% des valeurs qui sont inférieures et 50% des valeurs qui sont supérieures à cette valeur
  • 75% : troisième quartile : il y a 75% des valeurs qui sont inférieures et 75% des valeurs qui sont supérieures à cette valeur
  • max : valeur maximale

Au delà de la fonction describe(), on peut récupérer ses valeurs de manière individuelle.

Moyenne , min et max

On a ainsi les fonctions suivantes

data['colonne'].mean()
data['colonne'].min()
data['colonne'].max()

Arrondi : round

Pour se débarrasser des virgules on peut utiliser la fonction round()

data['colonne'].round()

On peut chainer ces fonctions pour faciliter la lecture des résultats.

data['colonne'].mean().round()

Compter les valeurs : value_counts

Pour compter le nombre de fois que chaque élément apparait dans une colonne :

data['colonne'].value_counts()

Trier les valeurs

On peut trier les valeurs d’une base de données en indiquant la ou les colonnes de références dans l’ordre.
Par défaut c’est dans l’ordre croissant :
data.sort_values(by=['colonne'])

Mais on peut aussi avoir l’ordre décroissant :

data.sort_values(by=['colonne'], ascending=False)

Contraindre une valeur

On peut contraindre une valeur entre a et b avec a<b avec la fonction clip()

data.clip(a,b)

Analyse de données

Tu peux trouver ici un code exemple qui illustre cette analyse et manipulation de données.

Groupby

Avant d’appliquer certaines fonctions, il peut être utile de « trier » les données. La fonction groupby() permet de filtrer nos données et de récupérer toutes les lignes où un élément est le même, puis les autres.

Par exemple si j’ai une colonne genre et un colonne salaire, je peux récupérer d’abord tous les hommes, puis toutes les femmes, afin de récupérer le salaire selon le genre.

genre_data.groupby(['Genre'])

Si on a plusieurs colonnes que l’on veut utiliser on peut les chainer

genre_data.groupby(['Colonne1','Colonne2'])
 

Chainer les fonctions

Après un groupby(), on peut appliquer certaines fonctions pour afficher par exemple la moyenne au sein de chaque sous partie de la colonne triée préalablement.

genre_data.groupby(['Genre']).mean()
 

Afficher la courbe

Par défaut la méthode plot() prend l’index pour l’axe X et il suffit de lister les colonnes que l’on veut afficher en Y

data_jours.plot(y=['colonne1','colonne2'])
 

Afficher des histogrammes

Pour afficher la répartition des données avec des histogrammes :

data['colonne'].plot.hist()

On peut aussi voir les histogrammes de différentes colonnes sur des figures différentes :

data[['colonne1','colonne2']].plot.hist(subplots = True)

Cette méthode est également compatible avec la fonction groupby() :

data[['Gender','BasePay']].groupby(['Gender']).plot.hist(subplots = True)

Il est possible de changer la taille de la figure :

data['colonne'].plot.hist(figsize = (largeur, hauteur)
Retour en haut