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
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)