Recherche de site Web

Tutoriel sur le module Python Pandas


Module Python Pandas

  • Pandas est une bibliothèque open source en Python. Elle fournit des structures de données et des outils d'analyse de données prêts à l'emploi et de haute performance.
  • Le module Pandas fonctionne au-dessus de NumPy et est largement utilisé pour la science des données et l'analyse des données.
  • NumPy est une structure de données de bas niveau qui prend en charge les tableaux multi-dimensionnels et une large gamme d'opérations mathématiques sur les tableaux. Pandas offre une interface de plus haut niveau. Il fournit également un alignement simplifié des données tabulaires et des fonctionnalités puissantes pour les séries temporelles.
  • Le DataFrame est la principale structure de données dans Pandas. Il nous permet de stocker et de manipuler des données tabulaires sous forme de structure de données 2D.
  • Pandas offre un ensemble riche de fonctionnalités sur le DataFrame. Par exemple, l'alignement des données, les statistiques des données, la découpe, le groupement, la fusion, la concaténation des données, etc.

Installation et prise en main de Pandas

Vous devez avoir Python 2.7 ou supérieur pour installer le module Pandas. Si vous utilisez conda, vous pouvez l'installer en utilisant la commande ci-dessous.

conda install pandas

Si vous utilisez PIP, exécutez la commande ci-dessous pour installer le module pandas.

pip3.7 install pandas

Installer le module Pandas pour Python

Pour importer Pandas et NumPy dans votre script Python, ajoutez le code ci-dessous :

import pandas as pd
import numpy as np

Comme Pandas dépend de la bibliothèque NumPy, nous devons importer cette dépendance.

Structures de données dans le module Pandas

Il existe 3 structures de données fournies par le module Pandas, qui sont les suivantes :

  • Séquence : C'est une structure de tableau de taille immuable en 1-D ayant des données homogènes.
  • DataFrames : C'est une structure tabulaire 2-D modifiable en taille avec des colonnes de types hétérogènes.
  • Panneau : C'est un tableau 3-D de taille modifiable.

Pandas DataFrame

Le DataFrame est la structure de données la plus importante et la plus utilisée, et c'est un moyen standard de stocker des données. Le DataFrame aligne les données en lignes et en colonnes comme une table SQL ou une base de données sous forme de tableur. Nous pouvons soit coder les données directement dans un DataFrame, soit importer un fichier CSV, un fichier TSV, un fichier Excel, une table SQL, etc. Nous pouvons utiliser le constructeur ci-dessous pour créer un objet DataFrame.

pandas.DataFrame(data, index, columns, dtype, copy)

Voici une brève description des paramètres :

  • données - créez un objet DataFrame à partir des données d'entrée. Cela peut être une liste, un dictionnaire, une série, des tableaux Numpy ou même, tout autre DataFrame.
  • index - a des étiquettes de ligne
  • colonnes - utilisées pour créer des étiquettes de colonne
  • dtype - utilisé pour spécifier le type de données de chaque colonne, paramètre optionnel
  • copier - utilisé pour copier des données, si nécessaire

Il existe de nombreuses façons de créer un DataFrame. Nous pouvons créer un objet DataFrame à partir de dictionnaires ou d'une liste de dictionnaires. Nous pouvons également le créer à partir d'une liste de tuples, d'un fichier CSV, d'un fichier Excel, etc. Exécutons un code simple pour créer un DataFrame à partir de la liste de dictionnaires.

import pandas as pd
import numpy as np
df = pd.DataFrame({
    "State": ['Andhra Pradesh', 'Maharashtra', 'Karnataka', 'Kerala', 'Tamil Nadu'],
    "Capital": ['Hyderabad', 'Mumbai', 'Bengaluru', 'Trivandrum', 'Chennai'],
    "Literacy %": [89, 77, 82, 97,85],
    "Avg High Temp(c)": [33, 30, 29, 31, 32 ]
})
print(df)

Sortie :

La première étape consiste à créer un dictionnaire. La deuxième étape consiste à passer le dictionnaire comme argument dans la méthode DataFrame(). La dernière étape est d'imprimer le DataFrame. Comme vous le voyez, le DataFrame peut être comparé à une table ayant des valeurs hétérogènes. De plus, la taille du DataFrame peut être modifiée. Nous avons fourni les données sous forme de carte et les clés de la carte sont considérées par Pandas comme les étiquettes de ligne. L'index est affiché dans la colonne la plus à gauche et contient les étiquettes de ligne. L'en-tête de colonne et les données sont affichés de manière tabulaire. Il est également possible de créer des DataFrames indexés. Cela peut être fait en configurant le paramètre d'index dans la méthode DataFrame().

Importer des données d'un CSV dans un DataFrame

Nous pouvons également créer un DataFrame en important un fichier CSV. Un fichier CSV est un fichier texte avec un enregistrement de données par ligne. Les valeurs dans l'enregistrement sont séparées par le caractère “virgule”. Pandas fournit une méthode utile, nommée read_csv(), pour lire le contenu du fichier CSV dans un DataFrame. Par exemple, nous pouvons créer un fichier nommé ‘cities.csv’ contenant des détails sur les villes indiennes. Le fichier CSV est stocké dans le même répertoire que les scripts Python. Ce fichier peut être importé en utilisant :

import pandas as pd
data =  pd.read_csv('cities.csv')
print(data)

Notre objectif est de charger des données et de les analyser pour en tirer des conclusions. Ainsi, nous pouvons utiliser n'importe quelle méthode pratique pour charger les données. Dans ce tutoriel, nous codons en dur les données du DataFrame.

Inspection des données dans le DataFrame

Exécuter le DataFrame en utilisant son nom affiche l'ensemble du tableau. En temps réel, les ensembles de données à analyser auront des milliers de lignes. Pour analyser les données, nous devons inspecter des données provenant de volumes énormes d'ensembles de données. Pandas offre de nombreuses fonctions utiles pour n'inspecter que les données dont nous avons besoin. Nous pouvons utiliser df.head(n) pour obtenir les n premières lignes ou df.tail(n) pour imprimer les n dernières lignes. Par exemple, le code ci-dessous imprime les 2 premières lignes et la dernière ligne du DataFrame.

print(df.head(2))

Sortie :

print(df.tail(1))

Sortie :

De même, print(df.dtypes) affiche les types de données. print(df.index) affiche l'index. print(df.columns) affiche les colonnes du DataFrame. print(df.values) affiche les valeurs du tableau.

1. Obtenir un résumé statistique des enregistrements

Nous pouvons obtenir un résumé statistique (compte, moyenne, écart type, min, max, etc.) des données en utilisant la fonction df.describe(). Maintenant, utilisons cette fonction pour afficher le résumé statistique de la colonne « % d'alphabétisation ». Pour ce faire, nous pouvons ajouter le code ci-dessous :

print(df['Literacy %'].describe())

Sortie :

La fonction df.describe() affiche le résumé statistique, ainsi que le type de données.

2. Tri des enregistrements

Nous pouvons trier les enregistrements par n'importe quelle colonne en utilisant la fonction df.sort_values(). Par exemple, trions la colonne “Pourcentage d'alphabétisation” par ordre décroissant.

print(df.sort_values('Literacy %', ascending=False))

Sortie :

3. Découpage des enregistrements

Il est possible d'extraire des données d'une colonne particulière en utilisant le nom de la colonne. Par exemple, pour extraire la colonne 'Capital', nous utilisons :

df['Capital']

ou

(df.Capital)

Sortie :

Il est également possible de découper plusieurs colonnes. Cela se fait en enfermant plusieurs noms de colonnes entre deux crochets, avec les noms de colonnes séparés par des virgules. Le code suivant découpe les colonnes 'État' et 'Capitale' du DataFrame.

print(df[['State', 'Capital']])

Sortie :

Il est également possible de découper des lignes. Plusieurs lignes peuvent être sélectionnées en utilisant l'opérateur ":". Le code ci-dessous renvoie les 3 premières lignes.

df[0:3]

Sortie :

Une fonctionnalité intéressante de la bibliothèque Pandas est de sélectionner des données en fonction de ses étiquettes de ligne et de colonne à l'aide de la fonction iloc[0]. Souvent, nous pouvons avoir besoin de seulement quelques colonnes pour analyser. Nous pouvons également sélectionner par index en utilisant loc['index_one']). Par exemple, pour sélectionner la deuxième ligne, nous pouvons utiliser df.iloc[1,:]. Supposons que nous devons sélectionner le deuxième élément de la deuxième colonne. Cela peut être fait en utilisant la fonction df.iloc[1,1]. Dans cet exemple, la fonction df.iloc[1,1] affiche “Mumbai ” en sortie.

4. Filtrage des données

Il est également possible de filtrer sur les valeurs des colonnes. Par exemple, le code ci-dessous filtre les colonnes ayant un pourcentage d'alphabétisation supérieur à 90%.

print(df[df['Literacy %']>90])

Tout opérateur de comparaison peut être utilisé pour filtrer, en fonction d'une condition. Sortie :

Une autre façon de filtrer les données est d'utiliser isin. Voici le code pour filtrer uniquement 2 États : 'Karnataka' et 'Tamil Nadu'.

print(df[df['State'].isin(['Karnataka', 'Tamil Nadu'])])

Sortie :

5. Renommer la colonne

Il est possible d'utiliser la fonction df.rename() pour renommer une colonne. La fonction prend l'ancien nom de colonne et le nouveau nom de colonne comme arguments. Par exemple, renonmons la colonne 'Taux d'alphabétisation %' en 'Pourcentage d'alphabétisation'.

df.rename(columns = {'Literacy %':'Literacy percentage'}, inplace=True)
print(df.head())

L'argument `inplace=True` applique les modifications au DataFrame. Sortie :

6. Préparation des données

La science des données implique le traitement des données afin que celles-ci puissent fonctionner efficacement avec les algorithmes de données. La manipulation des données est le processus de traitement des données, comme la fusion, le regroupement et la concatenation. La bibliothèque Pandas fournit des fonctions utiles comme merge(), groupby() et concat() pour soutenir les tâches de manipulation des données. Créons 2 DataFrames et montrons les fonctions de manipulation des données pour mieux les comprendre.

import pandas as pd

d = {  
    'Employee_id': ['1', '2', '3', '4', '5'],
    'Employee_name': ['Akshar', 'Jones', 'Kate', 'Mike', 'Tina']
}
df1 = pd.DataFrame(d, columns=['Employee_id', 'Employee_name'])  
print(df1)

Sortie :

Créons le deuxième DataFrame en utilisant le code ci-dessous :

import pandas as pd

data = {  
    'Employee_id': ['4', '5', '6', '7', '8'],
    'Employee_name': ['Meera', 'Tia', 'Varsha', 'Williams', 'Ziva']
}
df2 = pd.DataFrame(data, columns=['Employee_id', 'Employee_name'])  
print(df2)

Sortie :

a. Fusion

Maintenant, fusionnons les 2 DataFrames que nous avons créés, selon les valeurs de 'Employee_id' en utilisant la fonction merge():

print(pd.merge(df1, df2, on='Employee_id'))

Sortie :

Nous pouvons voir que la fonction merge() renvoie les lignes des deux DataFrames ayant la même valeur de colonne, qui a été utilisée lors de la fusion.

b. Regroupement

Le regroupement est un processus de collecte de données dans différentes catégories. Par exemple, dans l'exemple ci-dessous, le champ « Nom_Employé » contient le nom « Meera » deux fois. Donc, regroupons-le par la colonne « Nom_Employé ».

import pandas as pd
import numpy as np

data = {
    'Employee_id': ['4', '5', '6', '7', '8'],
    'Employee_name': ['Meera', 'Meera', 'Varsha', 'Williams', 'Ziva']
}
df2 = pd.DataFrame(data)

group = df2.groupby('Employee_name')
print(group.get_group('Meera'))

Le champ 'Employee_name' ayant la valeur 'Meera' est regroupé par la colonne 'Employee_name'. L'échantillon de sortie est comme suit : Sortie :

c. Concaténer

La concaténation de données consiste à ajouter un ensemble de données à un autre. Pandas fournit une fonction nommée concat() pour concaténer des DataFrames. Par exemple, concaténons les DataFrames df1 et df2, en utilisant :

print(pd.concat([df1, df2]))

Sortie :

Créez un DataFrame en passant un dictionnaire de séries

Pour créer une série, nous pouvons utiliser la méthode pd.Series() et lui passer un tableau. Créons une série simple comme suit :

series_sample = pd.Series([100, 200, 300, 400])
print(series_sample)

Sortie :

Nous avons créé une série. Vous pouvez voir que 2 colonnes sont affichées. La première colonne contient les valeurs d'index commençant à 0. La deuxième colonne contient les éléments passés en tant que série. Il est possible de créer un DataFrame en passant un dictionnaire de « Séries ». Créons un DataFrame qui est formé en unissant et en passant les index des séries. Exemple

d = {'Matches played' : pd.Series([400, 300, 200], index=['Sachin', 'Kohli', 'Raina']),
'Position' : pd.Series([1, 2, 3, 4], index=['Sachin', 'Kohli', 'Raina', 'Dravid'])}
df = pd.DataFrame(d)
print(df)

Exemple de sortie

Pour la série un, comme nous n'avons pas précisé l'étiquette 'd', NaN est renvoyé.

Sélection de colonnes, ajout, suppression

Il est possible de sélectionner une colonne spécifique du DataFrame. Par exemple, pour afficher uniquement la première colonne, nous pouvons réécrire le code ci-dessus comme suit :

d = {'Matches played' : pd.Series([400, 300, 200], index=['Sachin', 'Kohli', 'Raina']),
 'Position' : pd.Series([1, 2, 3, 4], index=['Sachin', 'Kohli', 'Raina', 'Dravid'])}
df = pd.DataFrame(d)
print(df['Matches played'])

Le code ci-dessus imprime uniquement la colonne « Matches played » du DataFrame. Sortie

Il est également possible d'ajouter des colonnes à un DataFrame existant. Par exemple, le code ci-dessous ajoute une nouvelle colonne nommée "Runrate" au DataFrame ci-dessus.

d = {'Matches played' : pd.Series([400, 300, 200], index=['Sachin', 'Kohli', 'Raina']),
 'Position' : pd.Series([1, 2, 3, 4], index=['Sachin', 'Kohli', 'Raina', 'Dravid'])}
df = pd.DataFrame(d)
df['Runrate']=pd.Series([80, 70, 60, 50], index=['Sachin', 'Kohli', 'Raina', 'Dravid'])
print(df)

Sortie :

Nous pouvons supprimer des colonnes en utilisant les fonctions `delete` et `pop`. Par exemple, pour supprimer la colonne 'Matchs joués' dans l'exemple ci-dessus, nous pouvons le faire de l'une des 2 manières suivantes :

del df['Matches played']

ou

df.pop('Matches played')

Sortie :

Conclusion

Dans ce tutoriel, nous avons eu une brève introduction à la bibliothèque Python Pandas. Nous avons également effectué des exemples pratiques pour libérer la puissance de la bibliothèque Pandas utilisée dans le domaine de la science des données. Nous avons également examiné les différentes structures de données dans la bibliothèque Python. Référence : Site officiel de Pandas