Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

ce sujet vise à acquérir et mettre en forme les données du COVID pour pouvoir produire facilement des diagrammes comme celui-ci
comme vous le voyez on a choisi:

les données de Johns Hopkins

autre jeu de données intéressant

le format json ?


format json pour le covid

acquisition des données json

avec pd.read_json

caching avec requests

en utilisant la librairie requests on peut implémenter un caching pour nos données

pas bonne connexion - pas grave...

chargement avec la lib json

<class 'dict'>
['Afghanistan', 'Albania', 'Algeria', 'Andorra']

une dataframe globale

qui consolide les données covid monde

exercice (version avancé)

exercice (méthode pas-à-pas)


index de la dataframe globale

les index ne sont pas forcément uniques

si vous avez appelé pd.concat() sans paramètre particulier, vous pouvez sans doute observer ceci:

---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
Cell In[15], line 3
      1 # si on essaie d'accéder à la ligne d'index 0
      2 # on remarque qu'en fait on obtient .. plein de lignes
----> 3 global_df.loc[0]

NameError: name 'global_df' is not defined

les dates en pandas

2020 12 22

les formats de dates en pandas

2
1
(Timestamp('2021-01-01 00:00:00'), Timestamp('2021-08-01 00:00:00'))
(Timestamp('2021-07-15 00:00:00'), Timestamp('2021-07-15 08:00:00'))

convertissons nos dates

reprenons à partir de la dataframe globale

un index plus idoine

à présent on va pouvoir choisir un index un peu plus adapté à nos données

accéder via un MultiIndex

un exemple de slicing (très) avancé

---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
Cell In[31], line 13
      9 # sauf qu'à nouveau ce n'est pas possible syntaxiquement ici
     10 countries = ['France', 'Italy']
     11 time_slice = slice('july 2021', '15 aug 2021')
     12 
---> 13 clean_df.loc[
     14     # les lignes: c'est un 2-index donc on peut passer 2 slices
     15     (countries, time_slice),
     16     # les colonnes: on les veut toutes

NameError: name 'clean_df' is not defined

dessinons

plot d’une dataframe

Loading...
<Figure size 640x480 with 1 Axes>

sur un pays

plusieurs pays

il nous reste maintenant à traiter le cas de plusieurs pays

mise en forme des données


df.unstack()

ne reste qu’à plotter

bonus