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)
