Bienvenue dans ce TP dédié à l'utilisation de pandas
dans un environnement Jupyter Notebook ! Vous allez explorer, traiter et visualiser des données réelles relatives à la pandémie de COVID-19.
- Assurez-vous d'avoir installé Jupyter Notebook et la bibliothèque
pandas
. - Si ce n'est pas encore fait, installez ces outils à l'aide de pip :
conda activate cours # et/ou pip install jupyter pandas notebook
Vous allez travailler sur un fichier JSON accessible à cette URL : https://pomber.github.io/covid19/timeseries.json
Format du JSON :
{
"Afghanistan": [
{
"date": "2020-1-22",
"confirmed": 0,
"deaths": 0,
"recovered": 0
},
...
]
...
}
Voir le TP ici
import pandas as pd
url = "https://pomber.github.io/covid19/timeseries.json"
import requests
response = requests.get(url)
by_countries = response.json()
On vérifie que c'est correctement chargé
list(by_countries.keys())[0:4]
data = []
for country in by_countries:
data_for_country = [d | { "country": country } for d in by_countries[country]]
data += data_for_country
df = pd.DataFrame(data)
On utile .info
.head
.describe
.dtypes
etc.
Est-ce qu'il n'y a pas un problème de type ? Comment le régler (indice chez vous, .to_<nouveau_type>...
)
- Comment filtrer les données françaises dans un DataFrame
df_france
? - On peut faire de jolie graphe sur le nombre de mort en france
- On pense à bien ordonné les colonnes par date
- On regarde la doc de
df.diff
et on en déduit comment connaitre le nombre de mort d'un jour sur l'autre - On créer des nouvelles colonnes 'deaths_by_day' et 'deaths_by_week'
- On fait des beaux graphes avec ces données
- Pourquoi on ne peut pas faire cela directement ?
- Il y a une base de population disponible en csv ici -> https://raw.githubusercontent.com/datasets/population/main/data/population.csv
- Comment faire pour l'importer ?
- Comment lister les pays ?
- Comment faire pour tracer pour l'évolution de la population en France ? en Italie ? une petite fonction qui nous fait cela ?
- Comment faire pour avoir la dernière population par pays (indice, on va voir le cours sur 'groupby')
- Comment on fait pour merger cela avec nos données précédentes ?
- On agrège tout cela pour faire un graphe comparé du nombre de mort pour 100000 habitants en france et en italie (idéalement sur le même graphe).