[CovsirPhy] Package Python COVID-19 pour l'analyse des données: chargement des données

Introduction

Nous créons un package Python CovsirPhy qui vous permet de télécharger et d'analyser facilement les données COVID-19 (comme le nombre de PCR positifs).

Article d'introduction:

La version anglaise du document est CovsirPhy: COVID-19 analysis with phase-depend SIRs, Kaggle: COVID-19 data with SIR model.

** Cette fois, je vais vous expliquer comment télécharger les données réelles du COVID-19. ** ** Édition anglaise:

1. Environnement d'exécution

CovsirPhy peut être installé par la méthode suivante! Veuillez utiliser Python 3.7 ou supérieur, ou Google Colaboratory.

--Version stable: pip install covsirphy --upgrade --Version de développement: pip install" git + https://github.com/lisphilar/covid19-sir.git#egg=covsirphy "

#Pour l'affichage des données
from pprint import pprint
# CovsirPhy
import covsirphy as cs
cs.__version__
# '2.8.2'
Environnement d'exécution
OS Windows Subsystem for Linux
Python version 3.8.5

Les tableaux et graphiques de cet article ont été créés à partir des données du 11/09/2020.

2. Résumé

Vous pouvez télécharger les données dans les 4 lignes suivantes.

data_loader = cs.DataLoader("input")
jhu_data = data_loader.jhu()
population_data = data_loader.population()
oxcgrt_data = data_loader.oxcgrt()

Les 3 types de données suivants sont automatiquement enregistrés dans le répertoire (dossier) «input» du COVID-19 Data Hub [^ 1]. Il fait également une bonne mise en forme des données.

Le formatage des données se fait du côté CovsirPhy, mais le téléchargement des données lui-même dépend du package officiel covid19dh de COVID-19 Data Hub. Nous travaillons également avec les développeurs [^ 2] pour éviter les erreurs, mais si quelque chose se passe page de problème CovsirPhy Veuillez nous contacter à partir de!

  1. DataLoader class Une interface utilisateur pour télécharger et formater des données. Si vous donnez "input" au premier argument comme indiqué ci-dessous, chaque donnée sera téléchargée dans le répertoire "input".
data_loader = cs.DataLoader("input")

Le nom du répertoire peut être modifié. La valeur par défaut du premier argument est "input" et peut être omise.

  1. DataLoader.jhu() Il s'agit d'une méthode pour télécharger des "données chronologiques de chaque pays / région concernant le nombre d'infectés / récupérés / morts". N'effectuez le téléchargement que si les dernières données n'ont pas été téléchargées. S'il a déjà été téléchargé, seules les données enregistrées seront lues et formatées.
# verbose=True:Afficher la source des données au moment du téléchargement
jhu_data = data_loader.jhu(verbose=True)
type(jhu_data)
# -> <class 'covsirphy.cleaning.jhu_data.JHUData'>

À l'origine, j'ai utilisé le nom de méthode "jhu" parce que j'ai téléchargé directement les données de l'Université John's Hopkins.

La source des données [^ 3] peut être confirmée à partir de l'instance de DataLoader.

[^ 3]: COVID-19 Data Hub est une donnée secondaire! Sur la base des données de l'Université John's Hopkins, etc., un prétraitement tel que le traitement des valeurs manquantes est effectué du côté de la base de données. Merci beaucoup.

# COVID-19 Informations sur le concentrateur de données-> (Résultat de sortie omis)
print(jhu_data.citation)
#Liste des sources de données-> (Résultat de sortie omis)
print(data_loader.covid19dh_citation)
#Afficher les données téléchargées(pandas.DataFrame) -> (Résultat de sortie omis)
jhu_data.raw.tail()

Par JHUData.cleaned (), les données de date / nom du pays / nom de la région / nombre total de cas confirmés (nombre de positifs PCR) / nombre actuel de personnes infectées / nombre total de décès / nombre total de guérisseurs sont stockées au format de base de données ( Vous pouvez l'obtenir avec pandas.DataFrame).

jhu_data.cleaned().tail()
Date Country Province Confirmed Infected Fatal Recovered
211098 2020-09-07 Colombia Vichada 14 0 0 14
211099 2020-09-08 Colombia Vichada 14 0 0 14
211100 2020-09-09 Colombia Vichada 14 0 0 14
211101 2020-09-10 Colombia Vichada 14 0 0 14
211102 2020-09-11 Colombia Vichada 14 0 0 14

Selon le pays, la valeur pour l'ensemble du pays et la valeur pour chaque région sont enregistrées, il n'est donc pas possible d'obtenir les données agrégées correctes pour chaque pays avec jhu_data.cleaned (). Groupby (" Country "). Sum (). Par conséquent, nous avons préparé une méthode «JHUData.subset (pays, province)» qui récupère les données pour un pays ou une région spécifique. Les colonnes des noms de pays et de région sont omises de la sortie.

#Sélectionnez uniquement le nom du pays-> (Résultat de sortie omis)
jhu_data.subset(country="Japan")
#Le code ISO3 est OK pour le nom du pays-> (Résultat de sortie omis)
jhu_data.subset(country="JPN")
#Sélectionnez le nom local
jhu_data.subset(country="JPN", province="Tokyo").tail()
Date Confirmed Infected Fatal Recovered
172 2020-09-07 21849 2510 372 18967
173 2020-09-08 22019 2470 378 19171
174 2020-09-09 22168 2349 379 19440
175 2020-09-10 22444 2478 379 19587
176 2020-09-11 22631 2439 380 19812

Remarque: Il s'agit de la 4e donnée (Tokyo / pays / organisation nationale de bénévoles / Hub de données COVID-19) et peut différer des chiffres annoncés par le gouvernement métropolitain de Tokyo.

Si vous souhaitez créer un graphe de séries chronologiques, veuillez utiliser la fonction cs.line_plot () (la fonction peut être obsolète et classée, nous la considérons donc).

cs.line_plot(
    subset_df.set_index("Date").drop("Confirmed", axis=1),
    title="Japan/Tokyo: cases over time",
    filename=None, #Définir le nom du fichier lors de la sortie vers un fichier
    y_integer=True, #Remplacez l'axe y par une valeur entière. N'utilisez pas x10 etc.
)

jhu_data_subset.jpg

De plus, nous avons préparé une méthode JHUData.total () pour obtenir la valeur totale du monde entier. Livré avec des données de pourcentage.

jhu_data.total().tail()
Date Confirmed Infected Fatal Recovered Fatal per Confirmed Recovered per Confirmed Fatal per (Fatal or Recovered)
2020-09-07 2.71499e+07 8.06515e+06 890441 1.81943e+07 0.0163986 0.335071 0.0466573
2020-09-08 2.73868e+07 8.10302e+06 895203 1.83886e+07 0.0163437 0.33572 0.0464225
2020-09-09 2.76653e+07 8.15167e+06 901058 1.86126e+07 0.016285 0.336388 0.0461758
2020-09-10 2.7954e+07 8.2298e+06 906678 1.88175e+07 0.0162173 0.33658 0.0459678
2020-09-11 2.79547e+07 8.22937e+06 906696 1.88187e+07 0.0162172 0.336592 0.045966
  1. DataLoader.population() Il s'agit d'une méthode permettant d'acquérir quotidiennement des «données démographiques de chaque pays / région».
population_data = data_loader.population()
print(type(population_data))
# -> <class 'covsirphy.cleaning.population.PopulationData'>

Vous pouvez obtenir des données de code ISO3 / pays / région / date / population avec PopulationData.cleaned (). Veuillez également utiliser PopulationData.value (country, province) pour obtenir la valeur de chaque pays / région.

#Obtenir des données formatées au format de trame de données->Résultat de sortie omis
population_data.cleaned().tail()
#Sélectionnez uniquement le nom du pays-> int
population_data.value(country="Japan")
#Le code ISO3 est OK pour le nom du pays-> int
population_data.value(country="JPN")
#Sélectionnez le nom local-> int
population_data.value(country="JPN", province="Tokyo")

Les valeurs de population peuvent être mises à jour avec la méthode PopulationData.update (valeur, pays, province).

#Avant la mise à jour-> 13942856
population_data.value(country="Japan", province="Tokyo")
#mise à jour
# https://www.metro.tokyo.lg.jp/tosei/hodohappyo/press/2020/06/11/07.html
population_data.update(14_002_973, "Japan", province="Tokyo")
#Après la mise à jour-> 14002973
population_data.value("Japan", province="Tokyo")
  1. DataLoader.oxcgrt() "Oxford Covid-19 Government Response Tracker (OxCGRT): données quantifiées sur l'état des mesures prises par chaque pays contre COVID-19" sur une base quotidienne La méthode pour obtenir. Veuillez consulter le lien pour plus d'informations sur les données. Je vais vous présenter comment utiliser les données pour l'analyse dans un autre article, mais je continue à l'explorer.
oxcgrt_data = data_loader.oxcgrt()
print(type(oxcgrt_data))
# -> <class 'covsirphy.cleaning.oxcgrt.OxCGRTData'>

Avec ʻOxCGRTData.cleaned () , vous pouvez obtenir les données du code ISO3 / nom du pays / date / chaque index. Les données régionales ne sont pas incluses. ʻOxCGRTData.subset (country) ne peut pas non plus spécifier de nom de région.

#Obtenir des données formatées au format de trame de données->Résultat de sortie omis
oxcgrt_data.cleaned().tail()
#Seul le nom du pays peut être sélectionné
oxcgrt_data.subset(country="Japan")
#Le code ISO3 est OK pour le nom du pays
oxcgrt_data.subset(country="JPN")
Date School_closing Workplace_closing Cancel_events Gatherings_restrictions Transport_closing Stay_home_restrictions Internal_movement_restrictions International_movement_restrictions Information_campaigns Testing_policy Contact_tracing Stringency_index
247 2020-09-07 1 1 1 0 0 1 1 3 2 2 1 30.56
248 2020-09-08 1 1 1 0 0 1 1 3 2 2 1 30.56
249 2020-09-09 1 1 1 0 0 1 1 3 2 2 1 30.56
250 2020-09-10 1 1 1 0 0 1 1 3 2 2 1 30.56
251 2020-09-11 1 1 1 0 0 1 1 3 2 2 1 30.56

7. Post-scriptum

Cette fois, j'ai expliqué comment acquérir chaque donnée en utilisant CovsirPhy. J'ai fait de mon mieux pour l'obtenir facilement avec un code court, alors veuillez l'utiliser! Nous apprécions vos commentaires.

La prochaine fois, j'écrirai un article sur l'explication de la méthode d'analyse en utilisant des données réelles. En plus des exemples d'utilisation, je voudrais décrire autant que possible le contexte technique. Je vous remercie!

Je vous remercie pour votre travail acharné!

Recommended Posts

[CovsirPhy] Package Python COVID-19 pour l'analyse des données: chargement des données
[CovsirPhy] Package Python COVID-19 pour l'analyse de données: modèle SIR-F
[CovsirPhy] Package Python COVID-19 pour l'analyse des données: analyse des tendances S-R
[CovsirPhy] Package Python COVID-19 pour l'analyse des données: modèle SIR
[CovsirPhy] Package Python COVID-19 pour l'analyse des données: estimation des paramètres
[CovsirPhy] Package Python COVID-19 pour l'analyse de données: analyse de scénario (comparaison de paramètres)
Python pour l'analyse des données Chapitre 4
Python pour l'analyse des données Chapitre 2
Python pour l'analyse des données Chapitre 3
Modèle de prétraitement pour l'analyse des données (Python)
Analyse de données python
Outil de visualisation Python pour le travail d'analyse de données
Analyse de données avec python 2
Présentation de l'analyse de données python
Modèle d'analyse de données Python
Analyse de données avec Python
Analysons les données Covid-19 (Corona) en utilisant Python [Pour les débutants]
Analyse de données pour améliorer POG 1 ~ Web scraping avec Python ~
Mon conteneur d'analyse de données python
[Python] Notes sur l'analyse des données
Notes d'apprentissage sur l'analyse des données Python
Analyse de données à l'aide de pandas python
Conseils et précautions lors de l'analyse des données
[Comprendre au plus court] Principes de base de Python pour l'analyse des données
Lequel dois-je étudier, R ou Python, pour l'analyse des données?
<Python> Construisez un serveur dédié pour l'analyse des données Jupyter Notebook
Python: analyse des séries chronologiques: prétraitement des données des séries chronologiques
Cours Python pour la science des données - techniques utiles
Analyse de données pour améliorer POG 3 ~ Analyse de régression ~
Formatage des données pour les graphiques Python / couleur
Analyse de données à partir de python (visualisation de données 1)
Analyse de données à partir de python (visualisation de données 2)
Pratique de l'analyse de données par Python et pandas (Tokyo COVID-19 data edition)
Créer un Ubuntu de démarrage USB avec un environnement Python pour l'analyse des données
Techniques Python détaillées requises pour la mise en forme des données (1)
[Python] Première analyse de données / apprentissage automatique (Kaggle)
Résumé du livre électronique Python utile pour l'analyse de données gratuite
Analyse de données à partir de python (pré-traitement des données-apprentissage automatique)
Comment utiliser "deque" pour les données Python
Techniques Python détaillées requises pour la mise en forme des données (2)
J'ai suivi une formation à l'analyse de données Python à distance
Préparation à l'examen d'analyse de données certifié Python 3 Engineer
JupyterLab Basic Setting 2 pour l'analyse des données (pip)
Configuration de base de JupyterLab pour l'analyse des données (pip)
Analyse des données en Python Résumé des sources que les débutants devraient d'abord consulter
Analyse des données pour améliorer POG 2 ~ Analyse avec le notebook jupyter ~
Modèle Python qui effectue une analyse des journaux à une vitesse explosive
Test d'analyse des données de certification d'ingénieur Python3
Formation préalable à l'examen d'analyse des données de certification d'ingénieur Python 3
Introduction à la modélisation statistique pour l'analyse des données
[Python] Analyse de données, pratique du machine learning (Kaggle) -Prétraitement des données-
Comment utiliser les outils d'analyse de données pour les débutants
Afficher la bougie de données FX (forex) en Python
Analyse de données en Python: une note sur line_profiler
[Python] Flux du scraping Web à l'analyse des données
Environnement enregistré pour l'analyse des données avec Python
Astro: modules / fonctions python fréquemment utilisés pour l'analyse