0% ont trouvé ce document utile (0 vote)
9 vues32 pages

Initiation à Pandas : Dataframes Python

Transféré par

achbelsdn
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
9 vues32 pages

Initiation à Pandas : Dataframes Python

Transféré par

achbelsdn
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

EEIA 2022 - Informatique

EEIA 2022
Initiation à la programmation informatique avec Python

Jour 5 : Calcul numérique: les dataframes


22 juillet 2022

Fidèle Dégni
Horus Dagnon
Merchrist Kiki

Bénin Excellence | Fondation Vallet


EEIA 2022 - Informatique

Plan

Module Pandas
1. Lecture / Ecriture d'un fichier csv
2. La gestion des dates
3. Jouer avec les data frame
4. Agrégation
5. Tracés graphiques
6. Cheat sheets
7. Aller plus loin

Bénin Excellence | Fondation Vallet 2/32


EEIA 2022 - Informatique

Le Module Pandas
Pandas permet de lire et traiter des blocs de données de manière pratique et
facile à interpreter.
Type de données utilisé: [Link]
Un DataFrame se représente comme un tableau. Mais en pratique, il s’agit d’un
dictionnaire dont les clés sont les noms des colonnes formant le tableau.
chaque colonne représente un type de données différent.
il est possible de nommer les ligne du tableau.

Bénin Excellence | Fondation Vallet 3/32


EEIA 2022 - Informatique

Le Module Pandas
Exemple:

import pandas as pd
df = [Link]({'num_legs': [2, 4], 'num_wings': [2, 0]}, index=['falcon', 'dog'])
[Link]()

Bénin Excellence | Fondation Vallet 4/32


EEIA 2022 - Informatique

Lecture / Écriture d'un fichier csv


En data science, enregistre souvent les données dans des fichiers csv
Un fichier csv est un fichier de base des données recueillies - sans formatage
particulier. Chaque champ est séparé par une virgule ou un point-virgule (ou un
autre séparateur défini par le data scientist).
Fonction utilisée pour lire un fichier csv :
pd.read_csv (file_path: str, sep: str, **kwargs)

Fonction utilisée pour écrire dans un fichier csv :


pd.to_csv (file_path: str, sep: str, **kwargs)

Bénin Excellence | Fondation Vallet 5/32


EEIA 2022 - Informatique

Lecture / Écriture d'un fichier csv


Exemple: Lecture d'un fichier csv

adresses = pd.read_csv('[Link]', sep=';')


[Link]()

Bénin Excellence | Fondation Vallet 6/32


EEIA 2022 - Informatique

Lecture / Écriture d'un fichier csv


Exemple: Écriture dans un fichier csv

[Link]().to_csv('adresses_tail_5.csv', sep=',', index=False)

Le fichier adresses_tail_5.csv contient alors:

Bénin Excellence | Fondation Vallet 7/32


EEIA 2022 - Informatique

La gestion des dates


Il est très fréquent d'avoir des dates dans nos jeux de données.
Les dates sont représentés par des strings dans le fichier csv
date,product,price
1/1/2019,A,10
1/2/2020,B,20
1/3/1998,C,30

Bien manipuler les dates en python nécessite leur conversion en objet date ou
plus précisément en datetime .

Bénin Excellence | Fondation Vallet 8/32


EEIA 2022 - Informatique

La gestion des dates


Exemple: lecture basique sans traitement du csv

# noter qu'on ne spécifie par l'argument `sep`


# sa valeur par defaut est `sep=','`
date_df = pd.read_csv('dates_1.csv')
date_df.info()

<class '[Link]'>
Int64Index: 3 entries, 0 to 2
Data columns (total 3 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 date 3 non-null object
1 product 3 non-null object
2 price 3 non-null int64
dtypes: int64(1), object(2)
memory usage: 72.0+ bytes
Bénin Excellence | Fondation Vallet 9/32
EEIA 2022 - Informatique

La gestion des dates


Exemple: lecture basique sans traitement du csv

On remarque que le type de la colonne date est object . (ce qu'on ne veut pas)

Bénin Excellence | Fondation Vallet 10/32


EEIA 2022 - Informatique

La gestion des dates


Exemple: lecture du csv en parsant les dates

date_df = pd.read_csv('dates_1.csv', parse_dates=['date'])


date_df.info()

<class '[Link]'>
Int64Index: 3 entries, 0 to 2
Data columns (total 3 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 date 3 non-null datetime64[ns]
1 product 3 non-null object
2 price 3 non-null int64
dtypes: datetime64[ns](1), int64(1), object(1)
memory usage: 200.0+ bytes

Bénin Excellence | Fondation Vallet 11/32


EEIA 2022 - Informatique

La gestion des dates


Exemple: lecture du csv en parsant les dates

Cette fois, le type de la colonne date est bien datetime . (ce qu'on veut)

date_df

Bénin Excellence | Fondation Vallet 12/32


EEIA 2022 - Informatique

Jouer avec les data frame


Accès aux colonnes de la dataframe
[Link]

Affichage des 5 premières lignes


[Link](5)
# ou encore [Link](). La valeur par défaut est 5.

Affichage des 3 dernières lignes


[Link](3)

Affichage des 4 premières lig,es


df[:4]

Bénin Excellence | Fondation Vallet 13/32


EEIA 2022 - Informatique

Jouer avec les data frame


Accès à une colonne dont on connaît le nom.
En reprenant l'exemple des adresses on accède à la colonne COL_ADRESSE en
faisant:
addresses["COL_ADRESSE"]

ou encore
addresses.COL_ADRESSE

Ceci est possible car COL_ADRESSE est un nom valable de variable.


[Link] ADRESSE n'aurait pas marché.

Bénin Excellence | Fondation Vallet 14/32


EEIA 2022 - Informatique

Jouer avec les data frame


Affichage des 6 premières lignes de la colonne COL_ADRESSE .
addresses.COL_ADRESSE[:6]

Affichage des 6 premières lignes des colonnes COL_A et COL_B .


addresses[["COL_A", "COL_B"]][:6]

Nombre de lignes et nombre de colonnes.


[Link]

Bénin Excellence | Fondation Vallet 15/32


EEIA 2022 - Informatique

Jouer avec les data frame


Suppression des lignes sans données.
Il peut arriver des fois que les données soit corrompues, des fois certaines valeurs
manquent juste. Une manière de procéder est de supprimer de telles lignes de
notre tableau:
df = [Link]()

ou encore
[Link](inplace=True)

Bénin Excellence | Fondation Vallet 16/32


EEIA 2022 - Informatique

Jouer avec les data frame


Récupérer les addresses dont COL_A vaut 530.
adresses[adresses.COL_A == 530]

Rajouter une colonne contenant la différence entre les valeurs de deux colonnes
x et y .

df["diff"] = df.x - df.y

Bénin Excellence | Fondation Vallet 17/32


EEIA 2022 - Informatique

Agrégation
Agréger c'est unir en un tout
Un agrégation se suit généralement d'une opération sur chacun des groupes
obtenus
Il s'agit par exemple de sum() , mean() , count() , max() , min() , etc.
En pandas , on utilise [Link] pour faire une agrégation
# grouper par départements
# puis faire la somme des valeurs sur chaque groupe
departements_df.groupby(["Departements"]).sum()

Bénin Excellence | Fondation Vallet 18/32


EEIA 2022 - Informatique

Tracés graphiques
On peut rapidement faire des tracé de graphes avec pandas
Ces tracés son basés sur la librairie matplotlib
On peut également utilisé directement matplotlib pour faire les tracés si on veut
faire des choses avancées.

Bénin Excellence | Fondation Vallet 19/32


EEIA 2022 - Informatique

Tracés graphiques
Exemple:

Données de l'unicef contenant une colonne year .


Faire un barplot du nombre d'années

year_counts = data_unicef.year.value_counts()
year_counts.plot(kind="bar")

Bénin Excellence | Fondation Vallet 20/32


EEIA 2022 - Informatique

Cheat sheets - Importer des données


>>> pd.read_csv(filename) # d'un fichier .csv
>>>
>>> pd.read_excel(filename) # d'un fichier Excel
>>>
>>> pd.read_sql(query, connection_object) # d'une table/database SQL
>>>
>>> pd.read_json(json_string) # d'un string JSON
>>>
>>> # d'un dictionnaire, clés pour les noms des colonnes
>>> # valeurs dans des listes
>>> [Link](dict)

Bénin Excellence | Fondation Vallet 21/32


EEIA 2022 - Informatique

Cheat sheets - Exporter des données


>>> df.to_csv(filename) # dans un fichier .csv
>>>
>>> df.to_excel(filename) # dans un fichier Excel
>>>
>>> df.to_sql(query, connection_object) # dans une table/database SQL
>>>
>>> df.to_json(filename) # dans un fichier JSON

Bénin Excellence | Fondation Vallet 22/32


EEIA 2022 - Informatique

Cheat sheets - Inspection des données


>>> [Link](n) # n premières colonnes
>>>
>>> [Link](n) # n dernières colonnes
>>>
>>> [Link] # nombre de lignes et de colonnes
>>>
>>> [Link]() # Index, Datatype et Information mémoire
>>>
>>> [Link]() # Résumé statisriques sur les colonnes numériques
>>>
>>> s.value_counts(dropna=False) # compter les donnée sur une série

Bénin Excellence | Fondation Vallet 23/32


EEIA 2022 - Informatique

Cheat sheets - Sélection


>>> df[col] # colonne ayant le nom col comme une série
>>>
>>> df[[col1, col2]] # les colonnes col1 et col2 en tant que DataFrame
>>>
>>> [Link][0] # Sélection par position
>>>
>>> [Link]['index_one'] # Sélection par index
>>>
>>> [Link][0,:] # Première colonne
>>>
>>> [Link][0,0] # Premier élément de la première colonne

Bénin Excellence | Fondation Vallet 24/32


EEIA 2022 - Informatique

Cheat sheets - Nettoyage de données


>>> [Link] = ['a','b','c'] # renommer les colonnes
>>>
>>> [Link]() # vérifier les valeurs nulles ou manquantes
>>>
>>> [Link]() # contraire de [Link]
>>>
>>> [Link]() # supprimer les lignes avec des données manquantes
>>>
>>> [Link](axis=1) # supprimer les colonnes avec des données manquantes
>>>
>>> # supprimer les colonnes avec moins de n valeurs non nulles
>>> [Link](axis=1,thresh=n)
>>>
>>> [Link](x) # remplacer les valeurs nulles par x
>>>
>>> [Link]([Link]()) # remplacer les valeurs nulles par la moyenne

Bénin Excellence | Fondation Vallet 25/32


EEIA 2022 - Informatique

Cheat sheets - Nettoyage de données


>>> [Link](float) # conversion en float
>>>
>>> [Link](1,'un') # remplacer les 1 par 'un'
>>>
>>> [Link]([1,3],['un','trois']) # remplacement multiple
>>>
>>> [Link](columns=lambda x: x + 1) # renommage de colonnes en masse
>>>
>>> [Link](columns={'old_name': 'new_ name'}) # renommage d'une colonne
>>>
>>> df.set_index('column_one') # changer d'index : column_one devient l'index
>>>
>>> [Link](index=lambda x: x + 1) # renommage d'index en masse

Bénin Excellence | Fondation Vallet 26/32


EEIA 2022 - Informatique

Cheat sheets - Filtre, Trie et Groupby


>>> df[df[col] > 0.5] # lignes pour lesquelles la colonne col est > 0.5
>>>
>>> df[(df[col] > 0.5) & (df[col] < 0.7)] # lignes où 0.7 > col > 0.5
>>>
>>> df.sort_values(col1) # trier par la colonne col1 par ordre croissant
>>>
>>> # trier par la colonne col2 par ordre décroissant
>>> df.sort_values(col2,ascending=False)
>>>
>>> # trier par col1 croissant puis par col2 décroissant
>>> df.sort_values([col1,col2],ascending=[True,False])

Bénin Excellence | Fondation Vallet 27/32


EEIA 2022 - Informatique

Cheat sheets - Filtre, Trie et Groupby


>>> # retourne un objet de type groupby pour les valeurs de col
>>> [Link](col)
>>>
>>> [Link]([col1,col2]) # groupby sur plusieurs colonnes
>>>
>>> # moyenne sur toutes les colonnes, groupé par valeur uniques sur col1
>>> [Link](col1).mean()
>>>
>>> # moyenne sur toutes les colonnes, groupé par valeur uniques sur col1
>>> [Link](col1).agg([Link])
>>>
>>> # appliquer la fonction [Link]() sur toutes les colonnes
>>> [Link]([Link])

Bénin Excellence | Fondation Vallet 28/32


EEIA 2022 - Informatique

Cheat sheets - Jointures


>>> # ajouter les lignes de df1 à la fin de df2 (colones identiques)
>>> [Link](df2)
>>>
>>> # ajouter les colonnes de df1 à la fin df2 (lignes identiques)
>>> [Link]([df1, df2],axis=1)
>>>
>>> # jointure style SQL
>>> [Link](df2,on=col1,how='inner')

Bénin Excellence | Fondation Vallet 29/32


EEIA 2022 - Informatique

Cheat sheets - Statistiques


>>> [Link]()

>>> [Link]()

>>> [Link]()

>>> [Link]()

>>> [Link]()

>>> [Link]()

>>> [Link]()

>>> [Link]()

Bénin Excellence | Fondation Vallet 30/32


EEIA 2022 - Informatique

Aller plus loin


Vous pouvez faire bien plus avec Pandas.
N’hésitez pas à faire des recherches si vous voulez utiliser une fonction qui n’a
pas été abordée dans ce chapitre.
La seule limitation, c'est votre curiosité.

Bénin Excellence | Fondation Vallet 31/32


EEIA 2022 - Informatique

FIN

Bénin Excellence | Fondation Vallet 32/32

Vous aimerez peut-être aussi