Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
Le module pandas
Un module vient compléter le jeu d'instructions de base du langage Python. Il
doit
donc être installé avant d'être utilisé. La commande sous Windows est la
suivante :
Attention !
Cette commande doit être exécutée en mode administrateur. Sous Windows, dans le
menu
Démarrer, clic droit sur l'application "invite de commandes" et choisir "exécuter en
tant qu'administrateur".
Initialisation
import pandas as pd
df = pd.DataFrame(
],
print(df)
print('Colonnes : ')
print(df.columns)
print('\nIndices : ')
print(df.index)
@oliviernocent
Colonnes :
Indices :
Extraction de valeurs
Comme pour les listes, l'opérateur [] permet d'extraire une
ou plusieurs
valeurs du tableau.
Attention
Cette méthode renvoie une copie de la valeur figurant dans l'objet DataFrame ,
elle ne
peut donc pas être utilisée pour modifier le contenu du tableau. Pour toute
modification
de valeur, il faut privilégier la propriété loc qui prend deux paramètres : le numéro de
ligne
suivi du nom de la colonne.
for i in df.index:
print(df['full_name'][i])
for i in df.index:
print(df.loc[i, 'full_name'])
@oliviernocent
Atlanta Hawks
Boston Celtics
Brooklyn Nets
Fonction Définition
Chargement de fichiers
pandas facilite aussi le chargement de fichiers afin d'initaliser
un
DataFrame avec un volume important de données.
Format CSV
import pandas as pd
# Initialisation du DataFrame df
@oliviernocent
# Enregistrement du DataFrame df au format CSV
Format Excel
Ce format, plus complexe, nécessite l'installation de deux modules
supplémentaires
pour le chargement et la sauvegarde. Sous Windows :
import pandas as pd
# Initialisation du DataFrame df
writer.save()
Exercice
Le fichier
measures_20191114_20191122.xls
recense les
concentrations de certains polluants atmosphériques mesurées
par le
capteur
Flow.
----------------------
Correction
import pandas as pd
df = pd.read_excel('data/measures_20191114_20191122.xls', she
print('-----------------------\n')
L'archive
NBA2018-2019.zip
contient les fichiers suivants :
teams.xlsx
liste des équipes NBA
ATL.xlsx , BKN.xlsx , BOS.xlsx , ...
liste des matchs (à domicile ou à l'extérieur) de l'équipe
Exercice
À partir du fichier teams.xlsx , affichez la liste des équipes
de la
division Pacific.
@oliviernocent
Correction
import pandas as pd
df = pd.read_excel('data/NBA2018-2019/teams.xlsx', sheet_name
for i in df.index:
print(df['full_name'][i])
Exercice
À partir du fichier ATL.xlsx , calculez le nombre de
victoires à domicile
et à l'extérieur de l'équipe
des Atlanta Hawks.
Correction
import pandas as pd
df = pd.read_excel('data/NBA2018-2019/ATL.xlsx', sheet_name='
home_wins = 0
visitor_wins = 0
for i in df.index:
# Match à domicile ?
if df['home_team'][i] == 'ATL':
# Victoire à domicile ?
else:
# Victoire à l'extérieur ?
import glob
print(filename)
print(filename)
Exercice
Créez un fichier teams_stats.xlsx à partir du fichier
teams.xlsx en y
ajoutant 3 colonnes :
home_wins
Nombre de victoires à domicile
visitor_wins
@oliviernocent
Nombre de victoires à l'extérieur
win_percentage
Pourcentage de victoires
Info
Correction
import pandas as pd
abbr = filename[-8:-5]
home_wins = 0
visitor_wins = 0
for i in df.index:
if df['home_team'][i] == abbr:
@oliviernocent if df['home_team_score'][i]>df['visitor_team_scor
home_wins += 1
else:
if df['visitor_team_score'][i]>df['home_team_scor
visitor_wins += 1
writer = pd.ExcelWriter('data/NBA2018-2019/teams_stats.xlsx',
df_teams.to_excel(writer, sheet_name = 'stats', index = False
writer.save()
Tri et filtre
Enfin, le module pandas permet d'effectuer des opérations globales
sur un
objet DataFrame .
Tri
La méthode df.sort_values() permet de trier l'ensemble des lignes
d'un
objet DataFrame nommé df avec les paramètres suivants :
Paramètre Signification
inplace True pour un tri sur place et False pour créer une copie
du DataFrame
@oliviernocent
df_sorted = df.sort_values(by='division', ascending=True, inplace
Exercice
Réalisez un palmarès de la saison NBA 2018-2019 en triant dans l'ordre
décroissant des pourcentages de victoire le fichier
teams_stats.xlsx .
Correction
import pandas as pd
df_teams = pd.read_excel('data/NBA2018-2019/teams_stats.xlsx'
maxPercentageIndex = df_teams['win_percentage'].idxmax()
minPercentageIndex = df_teams['win_percentage'].idxmin()
print('--------------------------\n')
writer = pd.ExcelWriter('data/NBA2018-2019/teams_stats.xlsx',
df_teams.to_excel(writer, sheet_name = 'stats', index = False
writer.save()
Filtre
La méthode df.filter() permet de filter le contenu de l'objet
DataFrame
nommé df en sélectionnant les colonnes à retenir
@oliviernocent
df_filtered = df.filter(['full_name', 'abbr'])
df_filtered = df.iloc[1:3, :]
Exercice
À partir du fichier teams_stats.xlsx , générez deux nouveaux fichiers
Excel donnant les palmarès pour les conference East et West, en ne
retenant
que les colonnes abbreviation , city , division ,
full_name et win_percentage .
Correction
import pandas as pd
df_teams = pd.read_excel('data/NBA2018-2019/teams_stats.xlsx'
writer = pd.ExcelWriter('data/NBA2018-2019/teams_stats_east.x
df_teams_short.to_excel(writer, sheet_name = 'stats', index =
writer.save()
@oliviernocent
df_teams_short = df_teams_west.filter(['abbreviation', 'city'
writer = pd.ExcelWriter('data/NBA2018-2019/teams_stats_west.x
df_teams_short.to_excel(writer, sheet_name = 'stats', index =
writer.save()