Aide-mémoire Pandas pour la science des données dans Python

⚡ Résumé intelligent

Les fiches récapitulatives de Pandas regroupent les commandes les plus utilisées de la bibliothèque sur une seule page. Ce guide les classe par tâche : installation, création de Series et de DataFrames, importation de fichiers, sélection de lignes, nettoyage des données, application de fonctions et exportation des résultats.

  • (I.e. Deux structures : Une série contient une dimension étiquetée, tandis qu'un DataFrame en contient deux avec des types de colonnes mixtes.
  • ☑️ Importez n'importe quoi : Les fonctions read_csv, read_excel, read_sql, read_json et read_html chargent les fichiers dans un DataFrame.
  • Sélection précise : loc sélectionne par étiquette, iloc par position et les masques booléens filtrent les lignes par condition.
  • 🧪 Nettoyer de manière fiable : isnull, dropna, fillna, drop_duplicates et replace gèrent les lacunes et les enregistrements répétés.
  • Inspection rapide : shape, info, dtypes et describe résument la structure et les statistiques avant le début de l'analyse.
  • ⚠️ Note de version : pandas 3.0 active par défaut la copie à l'écriture, donc l'affectation enchaînée génère une erreur.

Aide-mémoire Pandas pour la science des données dans Python

Qu'est-ce qu'une fiche récapitulative Pandas ?

La bibliothèque Pandas propose des centaines de fonctions, mais seule une petite partie est utilisée au quotidien. Aide-mémoire Pandas Il s'agit d'un document de référence d'une page répertoriant ces commandes, regroupées selon la tâche qu'elles accomplissent.

Ce document aborde les structures Series et DataFrame, l'importation et l'exportation de fichiers, la sélection et le tri des données, le nettoyage des valeurs et l'application de fonctions. Chaque section ci-dessous associe une brève explication à un code exécutable, ce qui permet également de réviser ces notions. compétences en analyse de données.

👉 Téléchargez le PDF de l'aide-mémoire ici

Comment installer et importer Pandas

Deux commandes permettent de configurer Pandas, et les deux s'exécutent dans un terminal ou un Jupyter Carnets cellule.

Étape 1) Installer Pandas

Exécutez ce code une seule fois par environnement ; faites-le précéder d’un point d’exclamation dans une cellule de bloc-notes.

pip install pandas

Étape 2) Importer Pandas

Importez le package sous l'alias pd, ce que suppose chaque exemple présenté ici.

import pandas as pd

Vous pouvez désormais utiliser les fonctions Pandas pour manipuler, analyser et nettoyer vos données. Les sections ci-dessous les listent dans l'ordre où vous les utilisez habituellement.

Structures de données Pandas

Pandas possède deux structures de données, Série et Trame de donnéesLes deux sont des tableaux étiquetés et peuvent contenir n'importe quel type de données. La seule différence réside dans leur dimensionnalité : une Series est un tableau unidimensionnel, tandis qu'un DataFrame est un tableau bidimensionnel construit à partir de… NumPy tableaux en dessous.

Fonctionnalité Série Trame de données
Dimensions unidimensionnel Bidimensionnel
Capacité Une seule colonne étiquetée Plusieurs colonnes, types de données mixtes
Constructeur pd.Series() pd.DataFrame()

1. Série

Il s'agit d'un tableau unidimensionnel étiqueté. Il peut contenir n'importe quel type de données, et None devient une valeur manquante.

s = pd.Series([2, -4, 6, 3, None], index=['A', 'B', 'C', 'D', 'E'])

2. Cadre de données

Il s'agit d'un tableau bidimensionnel étiqueté. Il peut contenir tout type de données et des colonnes de tailles différentes.

data = {'RollNo' : [101, 102, 75, 99],
        'Name' : ['Mithlesh', 'Ram', 'Rudra', 'Mithlesh'],
        'Course' : ['Nodejs', None, 'Nodejs', 'JavaScript']
}
df = pd.DataFrame(data, columns=['RollNo', 'Name', 'Course'])
df.head()

Le pense-bête imprimable ci-dessous rassemble les mêmes commandes sur une seule page.

Aide-mémoire Pandas imprimable répertoriant les commandes Series et DataFrame

Importation de données

Pandas peut lire de nombreux types de fichiers directement dans un DataFrame. Chaque lecteur ci-dessous renvoie un DataFrame. read_csv () est le plus utilisé.

# Import a CSV file pd
pd.read_csv(filename)

# Import a TSV file
pd.read_table(filename)

# Import a Excel file pd
pd.read_excel(filename)

# Import a SQL table/database
pd.read_sql(query, connection_object)

# Import a JSON file
pd.read_json(json_string)

# Import a HTML file
pd.read_html(url)

# From clipboard to read_table()
pd.read_clipboard()

# From dict
pd.DataFrame(dict)

Sélection

Vous pouvez sélectionner des éléments par leur emplacement ou par leur index. La même syntaxe avec crochets permet de sélectionner des lignes, des colonnes et des tranches dans les deux structures.

1. Série

# Accessing one element from Series
s['D']

# Accessing all elements between two given indices
s['A':'C']

# Accessing all elements from starting till given index
s[:'C']

# Accessing all elements from given index till end
s['B':]

2. Cadre de données

# Accessing one column df
df['Name']

# Accessing rows from after given row
df[1:]

# Accessing till before given row
df[:1]

# Accessing rows between two given rows
df[1:2]

Sélection par indexation et paramétrage booléens

Utilisez le iloc et iat pour les positions entières, et loc et at pour les étiquettes.

1. Par poste

df.iloc[0, 1]

df.iat[0, 1]

2. Par étiquette

df.loc[[0],  ['Name']]

3. Par étiquette/position

df.loc[2] # Both are same
df.iloc[2]

4. Indexation booléenne

Un masque booléen ne conserve que les lignes où la condition est vraie. Le deuxième exemple ajoute l'opérateur NON. ~, elle renvoie donc également des valeurs qui ne sont pas supérieures à 1.

# Series s where value is > 1
s[(s > 0)]

# Series s where value is <-2 or >1
s[(s < -2) | ~(s > 1)]

# Use filter to adjust DataFrame
df[df['RollNo']>100]

# Set index a of Series s to 6
s['D'] = 10
s.head()

Nettoyage de données

Pour Python À des fins de nettoyage des données, vous pouvez effectuer les opérations suivantes :

  • Renommez les colonnes à l'aide de rename() méthode.
  • Mettre à jour les valeurs à l'aide de at[] or iat[] méthode permettant d'accéder à des éléments spécifiques et de les modifier.
  • Créez une copie d'une série ou d'un DataFrame en utilisant copy() méthode.
  • Vérifiez les valeurs NULL à l'aide de isnull() et les déposer en utilisant la méthode dropna() méthode.
  • Vérifiez les valeurs en double à l'aide de duplicated() La méthode consiste à les déposer. drop_duplicates() méthode.
  • Remplacez les valeurs NULL à l'aide de fillna() méthode avec une valeur spécifiée.
  • Remplacez les valeurs en utilisant replace() méthode.
  • Trier les valeurs en utilisant sort_values() méthode.
  • Classez les valeurs en utilisant rank() méthode.
# Renaming columns
df.columns = ['a','b','c']
df.head()

# Mass renaming of columns
df = df.rename(columns={'RollNo': 'ID', 'Name': 'Student_Name'})

# Or use this edit in same DataFrame instead of in copy
df.rename(columns={'RollNo': 'ID', 'Name': 'Student_Name'}, inplace=True)
df.head()

# Counting duplicates in a column
df.duplicated(subset='Name')

# Removing entire row that has duplicate in given column
df.drop_duplicates(subset=['Name'])

# You can choose which one keep - by default is first
df.drop_duplicates(subset=['Name'], keep='last')

# Checks for Null Values
s.isnull()

# Checks for non-Null Values - reverse of isnull()
s.notnull()

# Checks for Null Values df
df.isnull()

# Checks for non-Null Values - reverse of isnull()
df.notnull()

# Drops all rows that contain null values
df.dropna()

# Drops all columns that contain null values
df.dropna(axis=1)

# Replaces all null values with 'Guru99'
df.fillna('Guru99')

# Replaces all null values with the mean
s.fillna(s.mean())

# Converts the datatype of the Series to float
s.astype(float)

# Replaces all values equal to 6 with 'Six'
s.replace(6,'Six')

# Replaces all 2 with 'Two' and 6 with 'Six'
s.replace([2,6],['Two','Six'])

# Drop from rows (axis=0)
s.drop(['B',  'D'])

# Drop from columns(axis=1)
df.drop('Name', axis=1)

# Sort by labels with axis
df.sort_index()

# Sort by values with axis
df.sort_values(by='RollNo')

# Ranking entries
df.rank()

# s1 is pointing to same Series as s
s1 = s

# s_copy of s, but not pointing same Series
s_copy = s.copy()

# df1 is pointing to same DataFrame as df
df1 = s

# df_copy of df, but not pointing same DataFrame
df_copy = df.copy()

Notez que s1 = s Cela ne fait que créer un deuxième nom pour le même objet, jamais une copie — c'est pourquoi copy() le suit.

Récupération d'informations

Vous pouvez effectuer les opérations suivantes pour récupérer des informations :

  • Utilisez le bouton shape attribut permettant d'obtenir le nombre de lignes et de colonnes.
  • Utilisez le bouton head() or tail() méthode pour obtenir les premières ou les dernières lignes comme échantillon.
  • Utilisez le bouton info(), describe() or dtypes méthode permettant d'obtenir des informations sur le type de données, le nombre, la moyenne, l'écart type, les valeurs minimale et maximale.
  • Utilisez le bouton count(), min(), max(), sum(), mean() et median() méthodes pour obtenir des informations statistiques spécifiques sur les valeurs.
  • Utilisez le bouton loc[] méthode pour obtenir une ligne.
  • Utilisez le bouton groupby() méthode permettant d'appliquer la fonction GROUP BY pour regrouper les valeurs similaires dans une colonne d'un DataFrame.

1. Information basique

# Counting all elements in Series
len(s)

# Counting all elements in DataFrame
len(df)

# Prints number of rows and columns in dataframe
df.shape

# Prints first 10 rows by default, if no value set
df.head(10)

# Prints last 10 rows by default, if no value set
df.tail(10)

# For counting non-Null values column-wise
df.count()

# For range of index df
df.index

# For name of attributes/columns
df.columns

# Index, Data Type and Memory information
df.info()

# Datatypes of each column
df.dtypes

# Summary statistics for numerical columns
df.describe()

2. Résumé

# For adding all values column-wise
df.sum()

# For min column-wise
df.min()

# For max column-wise
df.max()

# For mean value in number column
df.mean()

# For median value in number column
df.median()

# Count non-Null values
s.count()

# Count non-Null values
df.count()

# Return Series of given column
df['Name'].tolist()

# Name of columns
df.columns.tolist()

# Creating subset
df[['Name', 'Course']]

# Return number of values in each group
df.groupby('Name').count()

Application de fonctions

apply() Elle applique une fonction à chaque valeur. Les règles d'alignement déterminent ensuite ce qui se passe lorsque deux objets ne partagent qu'une partie de leur index.

# Define function
f = lambda x: x*5

# Apply this function on given Series - For each value
s.apply(f)

# Apply this function on given DataFrame - For each value
df.apply(f)

1. Alignement des données internes

# NA values for indices that don't overlap
s2 = pd.Series([8, -1, 4],  index=['A',  'C',  'D'])
s + s2

2. Arithmétique Operaopérations avec les méthodes de remplissage

# Fill values that don't overlap
s.add(s2, fill_value=0)

3. Filtrer, trier et regrouper par

Ces fonctions peuvent être utilisées pour filtrer, trier et regrouperping Objets Series et DataFrame.

# Filter rows where column is greater than 100
df[df['RollNo']>100]

# Filter rows where 70 < column < 101
df[(df['RollNo'] > 70) & (df['RollNo'] < 101)]

# Sorts values in ascending order
s.sort_values()

# Sorts values in descending order
s.sort_values(ascending=False)

# Sorts values by RollNo in ascending order
df.sort_values('RollNo')

# Sorts values by RollNo in descending order
df.sort_values('RollNo', ascending=False)

Exportation de données

Chaque module d'écriture ci-dessous est le reflet d'un module de lecture de la section d'importation, permettant ainsi à un fichier d'effectuer l'aller-retour sans outil supplémentaire.

# Export as a CSV file df
df.to_csv(filename)

# Export as a Excel file df
df.to_excel(filename)

# Export as a SQL table df
df.to_sql(table_name, connection_object)

# Export as a JSON file
df.to_json(filename)

# Export as a HTML table
df.to_html(filename)

# Write to the clipboard
df.to_clipboard()

Colab de l'aide-mémoire

Chaque commande présentée ici peut être exécutée dans le notebook associé : Aide-mémoire Pandas – Python pour la science des données.ipynb.

FAQ

La copie à l'écriture est toujours activée, les chaînes de caractères utilisent un type de données dédié (str) et l'affectation chaînée sur une copie filtrée lève une exception ChainedAssignmentError. Utilisez plutôt la méthode .loc pour l'affectation. Chaque commande s'exécute toujours sur pandas 3.0.

pd.merge() effectue des jointures sur les clés partagées de la même manière qu'un SQL La fonction `join` effectue l'opération inverse : `df.join()` aligne les données sur leur index, et `pd.concat()` empile les cadres. Utilisez `merge` pour les clés et `concat` pour l'ajout.

df.pivot_table() transforme les longues lignes en une large grille agrégée, pd.melt() inverse cela, et stack() ou unstack() déplacent un niveau entre l'index et les colonnes.

pd.to_datetime() convertit le texte en datetime64, l'accesseur .dt expose l'année, le mois et le jour de la semaine, et resample() agrège par jour, semaine ou mois une fois que cette colonne est l'index.

Les opérations vectorisées s'exécutent en C compilé sur l'ensemble du tableau, tandis que apply() appelle une Python Fonction à utiliser une fois par ligne. Échangerping L'application ligne par ligne de la fonction apply() à une expression vectorisée est souvent dix fois plus rapide.

Les assistants IA traduisent une description simple du résultat en appels concrets, suggérant par exemple groupby, merge ou pivot_table avec les arguments nécessaires. Vérifiez d'abord la suggestion sur un petit échantillon.

Oui. Copilote GitHub transforme un commentaire tel que « group by course and count » en code Pandas fonctionnel à l'intérieur JupyterConsidérez le résultat comme un brouillon et vérifiez le nombre de lignes.

Transmettez le type de données à read_csv ()Convertissez les colonnes de texte répétées en catégories, convertissez les nombres en formats numériques avec `pd.to_numeric` et chargez le dataframe par morceaux à l'aide de `chunksize`. `df.info()` affiche l'empreinte réelle.

Résumez cet article avec :