Aide-mémoire Pandas
Guide détaillé sur l’utilisation de la bibliothèque Pandas.
Installation de Pandas
| Commande | Description |
|---|---|
conda install pandas |
La meilleure façon d’obtenir pandas est via conda |
python3 -m pip install --upgrade pandas |
Via PyPI |
pip install pandas |
Installation pip standard |
Abréviations clés et importations de paquets
| Abréviation | Description |
|---|---|
df |
N’importe quel objet DataFrame Pandas |
s |
N’importe quel objet Series Pandas |
Méthodes d’importation
| Commande | Description |
|---|---|
import pandas as pd |
Importer pandas avec l’alias pd |
import numpy as np |
Importer numpy avec l’alias np |
Sélection de données
| Commande | Description |
|---|---|
df[col] |
Retourne une colonne sous forme de Series basée sur le nom de la colonne |
df[[col1, col2]] |
Retourne plusieurs colonnes sous forme de DataFrame |
s.iloc[0] |
Sélectionner les données par position |
s.loc['index_one'] |
Sélectionner les données par index |
df.iloc[0,:] |
Retourne la première ligne |
df.iloc[0,0] |
Retourne le premier élément de la première colonne |
Nettoyage des données
| Commande | Description |
|---|---|
df.columns = ['a','b','c'] |
Renommer les colonnes |
pd.isnull() |
Vérifier les valeurs nulles dans un DataFrame ; retourne un tableau booléen |
pd.notnull() |
Vérifier les valeurs non nulles dans un DataFrame ; retourne un tableau booléen |
df.dropna() |
Supprimer toutes les lignes contenant des valeurs nulles |
df.dropna(axis=1) |
Supprimer toutes les colonnes contenant des valeurs nulles |
df.dropna(axis=1, thresh=n) |
Supprimer toutes les lignes ayant moins de n valeurs non nulles |
df.fillna(x) |
Remplacer toutes les valeurs nulles dans un DataFrame par x |
s.astype(float) |
Convertir le type de données de la Series en float |
s.replace(1, 'one') |
Remplacer toutes les valeurs égales à 1 par ‘one’ |
s.replace([1,3], ['one', 'three']) |
Remplacer 1 par ‘one’ et 3 par ’three’ |
df.rename(columns=lambda x: x + 1) |
Renommage en lot des colonnes |
df.rename(columns={'old_name': 'new_name'}) |
Renommage sélectif des colonnes |
df.set_index('column_one') |
Changer la colonne d’index |
df.rename(index=lambda x: x + 1) |
Renommage en lot des index |
Importation de données
| Commande | Description |
|---|---|
pd.read_csv(filename) |
Importer des données d’un fichier CSV |
pd.read_table(filename) |
Importer des données d’un fichier texte délimité |
pd.read_excel(filename) |
Importer des données d’un fichier Excel |
pd.read_sql(query, connection_object) |
Importer des données d’une table/base de données SQL |
pd.read_json(json_string) |
Importer des données d’une chaîne JSON |
pd.read_html(url) |
Extraire des tableaux d’une URL, d’une chaîne ou d’un fichier HTML |
pd.read_clipboard() |
Récupérer le contenu du presse-papiers et le passer à read_table() |
pd.DataFrame(dict) |
Importer des données d’un dictionnaire (les clés sont les noms de colonnes, les valeurs sont les données) |
Exportation de données
| Commande | Description |
|---|---|
df.to_csv(filename) |
Exporter les données vers un fichier CSV |
df.to_excel(filename) |
Exporter les données vers un fichier Excel |
df.to_sql(table_name, connection_object) |
Exporter les données vers une table SQL |
df.to_json(filename) |
Exporter les données vers un fichier texte au format JSON |
Traitement des données : Filtrer, Trier et GroupBy
| Commande | Description |
|---|---|
df[df[col] > 0.5] |
Sélectionner les lignes où la valeur dans la colonne ‘col’ est > 0,5 |
df.sort_values(col1) |
Trier les données selon la colonne col1 (croissant par défaut) |
df.sort_values(col2, ascending=False) |
Trier les données selon la colonne col2 par ordre décroissant |
df.sort_values([col1, col2], ascending=[True, False]) |
Trier par col1 croissant, puis col2 décroissant |
df.groupby(col) |
Retourne un objet GroupBy groupé par la colonne ‘col’ |
df.groupby([col1, col2]) |
Retourne un objet GroupBy groupé par plusieurs colonnes |
df.groupby(col1)[col2].mean() |
Retourne la moyenne de la colonne col2 pour chaque groupe dans col1 |
df.pivot_table(index=col1, values=[col2, col3], aggfunc=max) |
Créer un tableau croisé dynamique groupé par col1, en calculant le max pour col2 et col3 |
df.groupby(col1).agg(np.mean) |
Retourne la moyenne pour toutes les colonnes groupées par col1 |
df.apply(np.mean) |
Appliquer la fonction np.mean sur chaque colonne |
df.apply(np.max, axis=1) |
Appliquer la fonction np.max sur chaque ligne |
Création d’objets de test
| Commande | Description |
|---|---|
pd.DataFrame(np.random.rand(20,5)) |
Créer un DataFrame avec 20 lignes et 5 colonnes de nombres aléatoires |
pd.Series(my_list) |
Créer une Series à partir d’un objet itérable my_list |
df.index = pd.date_range('1900/1/30', periods=df.shape[0]) |
Ajouter un index de date |
Visualisation et inspection des données
| Commande | Description |
|---|---|
df.head(n) |
Afficher les n premières lignes d’un DataFrame |
df.tail(n) |
Afficher les n dernières lignes d’un DataFrame |
df.shape |
Afficher le nombre de lignes et de colonnes |
df.info() |
Afficher l’index, les types de données et les informations sur la mémoire |
df.describe() |
Afficher les statistiques de résumé pour les colonnes numériques |
s.value_counts(dropna=False) |
Afficher les valeurs uniques et les décomptes pour une Series |
df.apply(pd.Series.value_counts) |
Afficher les valeurs uniques et les décomptes pour chaque colonne d’un DataFrame |
Fusion de données
| Commande | Description |
|---|---|
df1.append(df2) |
Ajouter les lignes de df2 à la fin de df1 |
pd.concat([df1, df2], axis=1) |
Ajouter les colonnes de df2 à la fin de df1 |
df1.join(df2, on=col1, how='inner') |
Jointure de style SQL entre les colonnes de df1 et df2 |
Statistiques des données
| Commande | Description |
|---|---|
df.describe() |
Afficher les statistiques de résumé pour les colonnes numériques |
df.mean() |
Retourne la moyenne de toutes les colonnes |
df.corr() |
Retourne le coefficient de corrélation entre les colonnes |
df.count() |
Retourne le nombre de valeurs non nulles dans chaque colonne |
df.max() |
Retourne la valeur maximale de chaque colonne |
df.min() |
Retourne la valeur minimale de chaque colonne |
df.median() |
Retourne la médiane de chaque colonne |
df.std() |
Retourne l’écart type de chaque colonne |