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