Apprenez les bases du travail avec pandas DataFrames : la structure de données de base de pandas, une puissante bibliothèque de manipulation de données.

Si vous souhaitez vous lancer dans l’analyse de données en Python, pandas est l’une des premières bibliothèques avec lesquelles vous devriez apprendre à travailler. Qu’il s’agisse d’importer des données à partir de sources multiples telles que des fichiers CSV et des bases de données, de gérer les données manquantes ou de les analyser pour en tirer des enseignements, pandas vous permet de faire tout cela.

Pour commencer à analyser des données avec pandas, vous devez comprendre la structure de données fondamentale de pandas : les cadres de données.

Dans ce tutoriel, vous apprendrez les bases des cadres de données pandas et les méthodes courantes pour créer des cadres de données. Vous apprendrez ensuite à sélectionner des lignes et des colonnes dans les dataframes pour récupérer des sous-ensembles de données.

Pour tout cela et bien plus encore, commençons.

Installation et importation de Pandas

Comme pandas est une bibliothèque d’analyse de données tierce, vous devez d’abord l’installer. Il est recommandé d’installer les paquets externes dans un environnement virtuel pour votre projet.

Si vous utilisez la distribution Anaconda de Python, vous pouvez utiliser conda pour la gestion des paquets.

conda install pandas

Vous pouvez également installer pandas à l’aide de pip :

pip install pandas

la bibliothèque pandas nécessite NumPy comme dépendance. Ainsi, si NumPy n’est pas déjà installé, il le sera également au cours du processus d’installation.

Après avoir installé pandas, vous pouvez l’importer dans votre environnement de travail. En général, pandas est importé sous l’alias pd:

import pandas as pd

Qu’est-ce qu’un DataFrame dans Pandas ?

What-Is-a-DataFrame-in-Pandas

La structure de données fondamentale de Pandas est le cadre de données. Un cadre de données est un tableau de données à deux dimensions avec un index étiqueté et des colonnes nommées. Chaque colonne du cadre de données, appelée série pandas, partage un index commun.

Voici un exemple de cadre de données que nous allons créer de toutes pièces au cours des prochaines minutes. Ce cadre de données contient des données sur les dépenses de six étudiants en quatre semaines.

pd-dataframe-ex

Les noms des étudiants sont les étiquettes des lignes. Les colonnes sont nommées “Semaine 1” à “Semaine 4”. Remarquez que toutes les colonnes partagent le même ensemble d’étiquettes de ligne, également appelé index.

Comment créer un DataFrame Pandas

Il existe plusieurs façons de créer un cadre de données Pandas. Dans ce tutoriel, nous aborderons les méthodes suivantes :

  • Création d’un cadre de données à partir de tableaux NumPy
  • Création d’un cadre de données à partir d’un dictionnaire Python
  • Création d’un cadre de données en lisant des fichiers CSV

À partir de tableaux NumPy

Créons un cadre de données à partir d’un tableau NumPy.

Créons un tableau de données de forme (6,4) en supposant qu’au cours d’une semaine donnée, chaque étudiant dépense entre 0 et 100 $. La fonction randint() du module random de NumPy renvoie un tableau d’entiers aléatoires dans un intervalle donné, [low,high].

import numpy as np
np.random.seed(42)
data = np.random.randint(0,101,(6,4))
print(data)
array([[51, 92, 14, 71],
       [60, 20, 82, 86],
       [74, 74, 87, 99],
       [23, 2, 21, 52],
       [ 1, 87, 29, 37],
       [ 1, 63, 59, 20]])

Pour créer un cadre de données pandas, vous pouvez utiliser le constructeur DataFrame et passer le tableau NumPy comme argument de données, comme indiqué :

students_df = pd.DataFrame(data=data)

Nous pouvons maintenant appeler la fonction intégrée type() pour vérifier le type de students_df. Nous constatons qu’il s’agit d’un objet DataFrame.

type(étudiants_df)
# pandas.core.frame.DataFrame
print(étudiants_df)
pandas-dataframe-01

Nous voyons que, par défaut, nous avons un index de plage qui va de 0 à numRows – 1, et les étiquettes de colonne sont 0, 1, 2, …, numCols -1. Cependant, cela réduit la lisibilité. Il sera utile d’ajouter des noms de colonnes et des étiquettes de lignes descriptives à la base de données.

Créons deux listes : l’une pour stocker les noms des étudiants et l’autre pour stocker les étiquettes des colonnes.

students = ['Amy', 'Bob', 'Chris', 'Dave', 'Evelyn', 'Fanny']
cols = ['Semaine1', 'Semaine2', 'Semaine3', 'Semaine4']

Lorsque vous appelez le constructeur du DataFrame, vous pouvez définir l’index et les colonnes comme étant respectivement les listes d’étiquettes de lignes et d’étiquettes de colonnes à utiliser.

students_df = pd.DataFrame(data = data,index = students,columns = cols)

Nous avons maintenant le cadre de données students_df avec des étiquettes de ligne et de colonne descriptives.

print(étudiants_df)
pandas-dataframe-02

Pour obtenir des informations de base sur le cadre de données, telles que les valeurs manquantes et les types de données, vous pouvez appeler la méthode info() sur l’objet cadre de données.

étudiants_df.info()
image-114

À partir d’un dictionnaire Python

Vous pouvez également créer une base de données pandas à partir d’un dictionnaire Python.

Ici, data_dict est le dictionnaire contenant les données sur les étudiants :

  • Les noms des étudiants sont les clés.
  • Chaque valeur est une liste du montant dépensé par chaque étudiant de la première à la quatrième semaine.
data_dict = {}
students = ['Amy', 'Bob', 'Chris', 'Dave', 'Evelyn', 'Fanny']
for student,student_data in zip(students,data) :
  data_dict[étudiant] = étudiant_data

Pour créer un cadre de données à partir d’un dictionnaire Python, utilisez from_dict, comme indiqué ci-dessous. Le premier argument correspond au dictionnaire contenant les données(data_dict). Par défaut, les clés sont utilisées comme noms de colonnes de la base de données. Comme nous souhaitons que les clés soient les étiquettes des lignes, définissez orient= 'index'.

students_df = pd.DataFrame.from_dict(data_dict,orient='index')
print(étudiants_df)
pandas-dataframe-from-dict

Pour changer le nom des colonnes en numéro de semaine, nous définissons columns dans la liste cols:

students_df = pd.DataFrame.from_dict(data_dict,orient='index',columns=cols)
print(étudiants_df)
pandas-dataframe-03

Lire un fichier CSV dans un DataFrame Pandas

Supposons que les données sur les étudiants soient disponibles dans un fichier CSV. Vous pouvez utiliser la fonction read_csv() pour lire les données du fichier dans un cadre de données pandas. pd.read_csv('file-path') est la syntaxe générale, où file-path est le chemin vers le fichier CSV. Le paramètre names peut être défini comme la liste des noms de colonnes à utiliser.

students_df = pd.read_csv('/content/students.csv',names=cols)

Maintenant que nous savons comment créer un cadre de données, apprenons à sélectionner des lignes et des colonnes.

Sélectionner des colonnes à partir d’un DataFrame Pandas

Il existe plusieurs méthodes intégrées que vous pouvez utiliser pour sélectionner des lignes et des colonnes dans un cadre de données. Ce tutoriel passe en revue les méthodes les plus courantes pour sélectionner des colonnes, des lignes, et à la fois des lignes et des colonnes à partir d’un cadre de données.

Sélection d’une seule colonne

Pour sélectionner une seule colonne, vous pouvez utiliser df_name<x>[col_name]</x>col_name est la chaîne de caractères indiquant le nom de la colonne.

Ici, nous ne sélectionnons que la colonne “Semaine1”.

week1_df = students_df['Week1']
print(week1_df)
single-column

Sélection de plusieurs colonnes

Pour sélectionner plusieurs colonnes dans le cadre de données, passez la liste de tous les noms de colonnes à sélectionner.

semaines impaires = étudiants_df[['Semaine1', 'Semaine3']]
print(semaines_impaires)
multiple-columns

Outre cette méthode, vous pouvez également utiliser les méthodes iloc() et loc() pour sélectionner des colonnes. Nous coderons un exemple plus tard.

Sélectionner des lignes dans un DataFrame Pandas

4-2

Utilisation de la méthode .iloc()

Pour sélectionner des lignes à l’aide de la méthode iloc(), transmettez les indices correspondant à toutes les lignes sous forme de liste.

Dans cet exemple, nous sélectionnons les lignes à l’index impair.

odd_index_rows = students_df.iloc[[1,3,5]]
print(rangs_index_impairs)
odd-rows

Ensuite, nous sélectionnons un sous-ensemble de la base de données contenant les lignes d’index 0 à 2, le point final 3 étant exclu par défaut.

slice1 = students_df.iloc[0:3]
print(slice1)
select-rows

Utilisation de la méthode .loc()

Pour sélectionner les lignes d’un cadre de données à l’aide de la méthode loc(), vous devez spécifier les étiquettes correspondant aux lignes que vous souhaitez sélectionner.

some_rows = students_df.loc[['Bob', 'Dave', 'Fanny']]
print(quelques_rangs)
some-rows

Si les lignes du cadre de données sont indexées en utilisant la plage par défaut 0, 1, 2, jusqu’à numRows -1, l’utilisation de iloc() et de loc() est équivalente.

Sélectionner des lignes et des colonnes dans un DataFrame Pandas

Jusqu’à présent, vous avez appris à sélectionner des lignes ou des colonnes dans un cadre de données Pandas. Cependant, vous pouvez parfois avoir besoin de sélectionner un sous-ensemble de lignes et de colonnes. Comment faire ? Vous pouvez utiliser les méthodes iloc() et loc() dont nous avons parlé.

Par exemple, dans l’extrait de code ci-dessous, nous sélectionnons toutes les lignes et colonnes aux index 2 et 3.

subset_df1 = students_df.iloc[ :,[2,3]]
print(sous-ensemble_df1)
dataframe-subset

L’utilisation de start:stop crée une tranche allant de start à stop inclus. Ainsi, lorsque vous ignorez les valeurs start et stop, la tranche commence au début et s’étend jusqu’à la fin du cadre de données, en sélectionnant toutes les lignes.

Lorsque vous utilisez la méthode loc(), vous devez fournir les étiquettes des lignes et des colonnes que vous souhaitez sélectionner, comme indiqué ci-dessous :

subset_df2 = students_df.loc[['Amy', 'Evelyn'],['Week1', 'Week3']]
print(subset_df2)
df-subset

Ici, le dataframe subset_df2 contient les enregistrements d’Amy et d’Evelyn pour les semaines 1 et 3.

Conclusion

Voici une revue rapide de ce que vous avez appris dans ce tutoriel :

  • Après avoir installé pandas, vous pouvez l’importer sous l’alias pd. Pour créer un objet pandas data frame, vous pouvez utiliser le constructeur pd.DataFrame(data), où data fait référence au tableau à N dimensions ou à un itérable contenant les données. Vous pouvez spécifier la ligne et l’index, ainsi que les étiquettes de colonne en définissant les paramètres facultatifs index et columns, respectivement.
  • L’utilisation de pd.read_csv(path-to-the-file) permet de lire le contenu du fichier dans un cadre de données.
  • Vous pouvez appeler la méthode info() sur l’objet data frame pour obtenir des informations sur les colonnes, le nombre de valeurs manquantes, les types de données et la taille du data frame.
  • Pour sélectionner une seule colonne, utilisez df_name<x>[col_name]</x>, et pour sélectionner plusieurs colonnes, colonne particulière, df_name[[col1,col2,...,coln]].
  • Vous pouvez également sélectionner des colonnes et des lignes à l’aide des méthodes loc() et iloc( ).
  • Alors que la méthode iloc() prend en compte l’index (ou la tranche d’index) des lignes et des colonnes à sélectionner, la méthode loc( ) prend en compte les étiquettes des lignes et des colonnes.

Vous pouvez trouver les exemples utilisés dans ce tutoriel dans ce cahier Colab.

Ensuite, jetez un coup d’œil à cette liste de carnets de notes collaboratifs sur la science des données.