Tutoriel du module Python Pandas

De Get Docs
Aller à :navigation, rechercher

Module Python Pandas

  • Pandas est une bibliothèque open source en Python. Il fournit des structures de données hautes performances et des outils d'analyse de données prêts à l'emploi.
  • Le module Pandas s'exécute au-dessus de NumPy et il est couramment 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 multidimensionnels et un large éventail d'opérations mathématiques sur les tableaux. Pandas a une interface de niveau supérieur. Il fournit également un alignement simplifié des données tabulaires et une puissante fonctionnalité de séries chronologiques.
  • DataFrame est la structure de données clé dans Pandas. Il nous permet de stocker et de manipuler des données tabulaires sous forme de structure de données 2D.
  • Pandas fournit un riche ensemble de fonctionnalités sur le DataFrame. Par exemple, alignement des données, statistiques des données, tranchage, regroupement, fusion, concaténation des données, etc.



Installer et démarrer avec Pandas

Vous devez avoir Python 2.7 et supérieur pour installer le module Pandas. Si vous utilisez conda, vous pouvez l'installer à l'aide de 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

Python Installer le module Pandas

Pour importer Pandas et NumPy dans votre script Python, ajoutez le morceau de 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.



Module Structures de données dans Pandas

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

  • Series : il s'agit d'une structure de type tableau 1-D de taille immuable ayant des données homogènes.
  • DataFrames : il s'agit d'une structure tabulaire 2D variable en taille avec des colonnes typées de manière hétérogène.
  • Panneau : il s'agit d'un tableau 3D dont la taille peut être modifiée.



Cadre de données Pandas

DataFrame est la structure de données la plus importante et la plus largement utilisée et constitue un moyen standard de stocker des données. DataFrame a des données alignées dans des lignes et des colonnes comme la table SQL ou une base de données de feuille de calcul. Nous pouvons soit coder en dur les données 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 :

  • data - crée un objet DataFrame à partir des données d'entrée. Il peut s'agir d'une liste, d'un dict, d'une série, de ndarrays Numpy ou même de tout autre DataFrame.
  • index - contient les étiquettes de ligne
  • columns - utilisé pour créer des étiquettes de colonne
  • dtype - utilisé pour spécifier le type de données de chaque colonne, paramètre facultatif
  • copy - utilisé pour copier des données, le cas échéant

Il existe de nombreuses façons de créer un DataFrame. Nous pouvons créer un objet DataFrame à partir de Dictionaries ou d'une liste de dictionnaires. Nous pouvons également le créer à partir d'une liste de tuples, CSV, fichier Excel, etc. Exécutons un code simple pour créer un DataFrame à partir de la liste des 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 en argument dans la méthode DataFrame(). La dernière étape consiste à imprimer le DataFrame. Comme vous le voyez, le DataFrame peut être comparé à une table ayant une valeur hétérogène. De plus, la taille du DataFrame peut être modifiée. Nous avons fourni les données sous la forme de la carte et les clés de la carte sont considérées par Pandas comme les étiquettes des lignes. 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 sous forme de tableau. Il est également possible de créer des DataFrames indexées. Cela peut être fait en configurant le paramètre index dans le DataFrame() méthode.



Importation de données de CSV vers 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 les détails des villes indiennes. Le fichier CSV est stocké dans le même répertoire qui contient 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 tirer des conclusions. Ainsi, nous pouvons utiliser n'importe quelle méthode pratique pour charger les données. Dans ce didacticiel, nous codons en dur les données du DataFrame.



Inspecter les données dans DataFrame

L'exécution du DataFrame en utilisant son nom affiche la table entière. En temps réel, les jeux de données à analyser auront des milliers de lignes. Pour analyser les données, nous devons inspecter les données à partir d'énormes volumes d'ensembles de données. Les pandas fournissent de nombreuses fonctions utiles pour inspecter uniquement les données dont nous avons besoin. On peut 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))

Production:

print(df.tail(1))

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



1. Obtenir un résumé statistique des enregistrements

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

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

Sortie : Le df.describe() La fonction 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 df.sort_values() fonction. Par exemple, trions la colonne "% d'alphabétisation" par ordre décroissant.

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

Production:



3. Trancher les enregistrements

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

df['Capital']

ou

(df.Capital)

Sortie : Il est également possible de découper plusieurs colonnes. Cela se fait en entourant plusieurs noms de colonne entre 2 crochets, avec les noms de colonne séparés par des virgules. Le code suivant découpe les colonnes 'State' et 'Capital' du DataFrame.

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

Sortie : Il est également possible de découper des lignes. Plusieurs lignes peuvent être sélectionnées à l'aide de 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 consiste à sélectionner des données en fonction de ses étiquettes de ligne et de colonne à l'aide de iloc[0] fonction. Souvent, nous n'avons besoin que de quelques colonnes à 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,:] . Disons que nous devons sélectionner le deuxième élément de la deuxième colonne. Cela peut être fait en utilisant df.iloc[1,1] fonction. 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 Literacy% supérieur à 90%.

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

N'importe quel opérateur de comparaison peut être utilisé pour filtrer, en fonction d'une condition. Sortie : Une autre façon de filtrer les données consiste à utiliser la isin. Voici le code pour filtrer seulement 2 états 'Karnataka' et 'Tamil Nadu'.

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

Production:



5. Renommer la colonne

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

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

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



6. Conflit de données

La science des données implique le traitement des données afin que les données puissent bien fonctionner avec les algorithmes de données. Le Data Wrangling est le processus de traitement des données, comme la fusion, le regroupement et la concaténation. La bibliothèque Pandas fournit des fonctions utiles telles que merge(), groupby() et concat() pour prendre en charge les tâches de Data Wrangling. Créons 2 DataFrames et montrons les fonctions de Data Wrangling pour mieux le 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)

Production:



un. Fusion

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

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 "Employee_Name" porte le nom "Meera" deux fois. Alors, regroupons-le par colonne "Employee_name".

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'exemple de sortie est le suivant : Sortie :



c. concaténation

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 , utilisant :

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

Production:



Créer un DataFrame en passant Dict of Series

Pour créer une série, nous pouvons utiliser le pd.Series() et passez-lui 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 série. Il est possible de créer un DataFrame en passant un dictionnaire de `Series`. Créons un DataFrame qui est formé en unissant et en passant les index de la série. 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 première série, comme nous n'avons pas spécifié l'étiquette 'd', NaN est renvoyé.



Sélection de colonne, ajout, suppression

Il est possible de sélectionner une colonne spécifique dans le DataFrame. Par exemple, pour n'afficher que 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 jouées" du DataFrame. Output 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 à l'aide des fonctions `delete` et `pop`. Par exemple, pour supprimer la colonne "Matches joués" dans l'exemple ci-dessus, nous pouvons le faire de l'une des 2 manières ci-dessous :

del df['Matches played']

ou

df.pop('Matches played')

Production:



Conclusion

Dans ce tutoriel, nous avons eu une brève introduction à la bibliothèque Python Pandas. Nous avons également réalisé 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 parcouru les différentes structures de données de la bibliothèque Python. Référence : Site Officiel Pandas