[CovsirPhy] COVID-19 Python-Paket für die Datenanalyse: Laden von Daten

Introduction

Wir erstellen ein Python-Paket CovsirPhy, mit dem Sie COVID-19-Daten (z. B. die Anzahl der PCR-Positiven) einfach herunterladen und analysieren können.

Einführungsartikel:

Die englische Version des Dokuments lautet CovsirPhy: COVID-19-Analyse mit phasenabhängigen SIRs, Kaggle: COVID-19-Daten mit SIR-Modell.

** Dieses Mal werde ich erklären, wie die tatsächlichen Daten von COVID-19 heruntergeladen werden. ** ** ** Englische Ausgabe:

1. Ausführungsumgebung

CovsirPhy kann mit der folgenden Methode installiert werden! Bitte verwenden Sie Python 3.7 oder höher oder Google Colaboratory.

--Stabile Version: pip install covsirphy --upgrade

#Zur Datenanzeige
from pprint import pprint
# CovsirPhy
import covsirphy as cs
cs.__version__
# '2.8.2'
Ausführungsumgebung
OS Windows Subsystem for Linux
Python version 3.8.5

Die Tabellen und Grafiken in diesem Artikel wurden mit Daten vom 11.09.2020 erstellt.

2. Zusammenfassung

Sie können die Daten in den folgenden 4 Zeilen herunterladen.

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

Die folgenden 3 Datentypen werden automatisch im Verzeichnis "Eingabe" (Ordner) von COVID-19 Data Hub [^ 1] gespeichert. Es macht auch eine gute Datenformung.

Die Datenformatierung erfolgt auf der CovsirPhy-Seite, der Daten-Download selbst hängt jedoch vom offiziellen Paket "covid19dh" von COVID-19 Data Hub ab. Wir arbeiten auch mit Entwicklern [^ 2] zusammen, um Fehler zu vermeiden, aber wenn etwas passiert CovsirPhy-Problemseite Bitte kontaktieren Sie uns von!

  1. DataLoader class Eine Benutzeroberfläche zum Herunterladen und Formatieren von Daten. Wenn Sie dem ersten Argument wie unten gezeigt "Eingabe" geben, werden alle Daten in das Verzeichnis "Eingabe" heruntergeladen.
data_loader = cs.DataLoader("input")

Der Verzeichnisname kann geändert werden. Der Standardwert des ersten Arguments ist "Eingabe" und kann weggelassen werden.

  1. DataLoader.jhu() Dies ist eine Methode zum Herunterladen von "Zeitreihendaten jedes Landes / jeder Region in Bezug auf die Anzahl der Infizierten / Wiederhergestellten / Toten". Führen Sie den Download nur durch, wenn die neuesten Daten nicht heruntergeladen wurden. Wenn es bereits heruntergeladen wurde, werden nur die gespeicherten Daten gelesen und formatiert.
# verbose=True:Zeigen Sie die Datenquelle zum Zeitpunkt des Downloads an
jhu_data = data_loader.jhu(verbose=True)
type(jhu_data)
# -> <class 'covsirphy.cleaning.jhu_data.JHUData'>

Ursprünglich habe ich den Methodennamen "jhu" verwendet, weil ich die Daten der Johns Hopkins University direkt heruntergeladen habe.

Die Quelle der Daten [^ 3] kann von der Instanz von DataLoader bestätigt werden.

[^ 3]: COVID-19 Data Hub sind sekundäre Daten! Basierend auf den Daten der Johns Hopkins University usw. wird eine Vorverarbeitung wie die Verarbeitung fehlender Werte auf der Datenbankseite durchgeführt. Vielen Dank.

# COVID-19 Data Hub-Informationen-> (Ausgabeergebnis weggelassen)
print(jhu_data.citation)
#Liste der Datenquellen-> (Ausgabeergebnis weggelassen)
print(data_loader.covid19dh_citation)
#Heruntergeladene Daten anzeigen(pandas.DataFrame) -> (Ausgabeergebnis weggelassen)
jhu_data.raw.tail()

Mit "JHUData.cleaned ()" werden die Daten von Datum / Ländername / Regionsname / Gesamtzahl der bestätigten Fälle (Anzahl der PCR-Positiven) / aktuelle Anzahl infizierter Personen / Gesamtzahl der Todesfälle / Gesamtzahl der Wiederhersteller im Datenrahmenformat ("gespeichert) Sie können es mit pandas.DataFrame`) bekommen.

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

Je nach Land werden sowohl der Wert für das gesamte Land als auch der Wert für jede Region registriert, sodass mit "jhu_data.cleaned (). Groupby (" Country "). Sum ()" nicht die richtigen aggregierten Daten für jedes Land abgerufen werden können. Aus diesem Grund haben wir eine Methode "JHUData.subset (Land, Provinz)" vorbereitet, mit der Daten für ein bestimmtes Land oder eine bestimmte Region abgerufen werden. Die Spalten für Länder- und Regionsnamen werden in der Ausgabe weggelassen.

#Wählen Sie nur den Ländernamen-> (Ausgabeergebnis weggelassen)
jhu_data.subset(country="Japan")
#Der ISO3-Code ist für den Ländernamen in Ordnung-> (Ausgabeergebnis weggelassen)
jhu_data.subset(country="JPN")
#Wählen Sie den lokalen Namen
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

Hinweis: Dies sind die 4. Daten (Tokio / Land / Freiwillige inländische Organisation / COVID-19 Data Hub) und können von den von der Tokyo Metropolitan Government angekündigten Zahlen abweichen.

Wenn Sie ein Zeitreihendiagramm erstellen möchten, verwenden Sie bitte die Funktion cs.line_plot () (die Funktion ist möglicherweise veraltet und klassifiziert, daher ziehen wir dies in Betracht).

cs.line_plot(
    subset_df.set_index("Date").drop("Confirmed", axis=1),
    title="Japan/Tokyo: cases over time",
    filename=None, #Legen Sie den Dateinamen bei der Ausgabe in eine Datei fest
    y_integer=True, #Ändern Sie die y-Achse in einen ganzzahligen Wert. Verwenden Sie nicht x10 usw.
)

jhu_data_subset.jpg

Zusätzlich haben wir eine Methode JHUData.total () vorbereitet, um den Gesamtwert der ganzen Welt zu erhalten. Kommt mit prozentualen Daten.

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() Dies ist eine Methode, um täglich "Bevölkerungsdaten jedes Landes / jeder Region" zu erfassen.
population_data = data_loader.population()
print(type(population_data))
# -> <class 'covsirphy.cleaning.population.PopulationData'>

Sie können ISO3-Code / Land / Region / Datum / Bevölkerungsdaten mit PopulationData.cleaned () abrufen. Verwenden Sie außerdem "PopulationData.value (Land, Provinz)", um den Wert jedes Landes / jeder Region abzurufen.

#Erhalten Sie formatierte Daten im Datenrahmenformat->Ausgabeergebnis weggelassen
population_data.cleaned().tail()
#Wählen Sie nur den Ländernamen-> int
population_data.value(country="Japan")
#Der ISO3-Code ist für den Ländernamen in Ordnung-> int
population_data.value(country="JPN")
#Wählen Sie den lokalen Namen-> int
population_data.value(country="JPN", province="Tokyo")

Der Bevölkerungswert kann mit der Methode "PopulationData.update (Wert, Land, Provinz)" aktualisiert werden.

#Vor dem Update-> 13942856
population_data.value(country="Japan", province="Tokyo")
#aktualisieren
# https://www.metro.tokyo.lg.jp/tosei/hodohappyo/press/2020/06/11/07.html
population_data.update(14_002_973, "Japan", province="Tokyo")
#Nach dem Update-> 14002973
population_data.value("Japan", province="Tokyo")
  1. DataLoader.oxcgrt() "Oxford Covid-19 Government Response Tracker (OxCGRT): Quantifizierte Daten zum Status der Maßnahmen, die jedes Land täglich gegen COVID-19 ergriffen hat" Die Methode zu bekommen. Bitte überprüfen Sie den Link für weitere Informationen zu den Daten. Ich werde in einem anderen Artikel vorstellen, wie die Daten für die Analyse verwendet werden, aber ich untersuche sie noch.
oxcgrt_data = data_loader.oxcgrt()
print(type(oxcgrt_data))
# -> <class 'covsirphy.cleaning.oxcgrt.OxCGRTData'>

Sie können die Daten des ISO3-Codes / Ländernamens / Datums / jedes Index über "OxCGRTData.cleaned ()" abrufen. Regionale Daten sind nicht enthalten. Sie können keinen Regionsnamen für "OxCGRTData.subset (country)" angeben.

#Erhalten Sie formatierte Daten im Datenrahmenformat->Ausgabeergebnis weggelassen
oxcgrt_data.cleaned().tail()
#Es kann nur der Ländername ausgewählt werden
oxcgrt_data.subset(country="Japan")
#Der ISO3-Code ist für den Ländernamen in Ordnung
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. Nachtrag

Dieses Mal erklärte ich, wie die einzelnen Daten mit CovsirPhy erfasst werden. Ich habe mein Bestes getan, um es einfach mit einem Funktionscode zu bekommen, also benutze es bitte! Wir freuen uns über Ihr Feedback.

Das nächste Mal werde ich einen Artikel über die Erklärung der Analysemethode unter Verwendung der tatsächlichen Daten schreiben. Neben den Anwendungsbeispielen möchte ich den technischen Hintergrund so gut wie möglich beschreiben. Vielen Dank!

Danke für deine harte Arbeit!

Recommended Posts

[CovsirPhy] COVID-19 Python-Paket für die Datenanalyse: Laden von Daten
[CovsirPhy] COVID-19 Python-Paket für die Datenanalyse: SIR-F-Modell
[CovsirPhy] COVID-19 Python-Paket für die Datenanalyse: S-R-Trendanalyse
[CovsirPhy] COVID-19 Python-Paket für die Datenanalyse: SIR-Modell
[CovsirPhy] COVID-19 Python-Paket für die Datenanalyse: Parameterschätzung
[CovsirPhy] COVID-19 Python-Paket für die Datenanalyse: Szenarioanalyse (Parametervergleich)
Python für die Datenanalyse Kapitel 4
Python für die Datenanalyse Kapitel 2
Python für die Datenanalyse Kapitel 3
Vorverarbeitungsvorlage für die Datenanalyse (Python)
Datenanalyse Python
Python-Visualisierungstool für die Datenanalyse
Datenanalyse mit Python 2
Datenanalyse Übersicht Python
Python-Datenanalysevorlage
Datenanalyse mit Python
Lassen Sie uns Covid-19 (Corona) -Daten mit Python analysieren [Für Anfänger]
Datenanalyse zur Verbesserung von POG 1 ~ Web Scraping mit Python ~
Mein Python-Datenanalyse-Container
[Python] Hinweise zur Datenanalyse
Lernnotizen zur Python-Datenanalyse
Datenanalyse mit Python-Pandas
Tipps und Vorsichtsmaßnahmen bei der Datenanalyse
[In kürzester Zeit verstehen] Python-Grundlagen für die Datenanalyse
Welches sollte ich für die Datenanalyse studieren, R oder Python?
<Python> Erstellen Sie einen Server für die Datenanalyse mit Jupyter Notebook
Python: Zeitreihenanalyse: Vorverarbeitung von Zeitreihendaten
Python-Kurs für datenwissenschaftlich-nützliche Techniken
Datenanalyse zur Verbesserung von POG 3 ~ Regressionsanalyse ~
Datenformatierung für Python / Farbdiagramme
Datenanalyse beginnend mit Python (Datenvisualisierung 1)
Datenanalyse beginnend mit Python (Datenvisualisierung 2)
Praxis der Datenanalyse durch Python und Pandas (Tokyo COVID-19 Data Edition)
Erstellen Sie ein USB-Boot-Ubuntu mit einer Python-Umgebung für die Datenanalyse
Detaillierte Python-Techniken für die Datenformung (1)
[Python] Erste Datenanalyse / maschinelles Lernen (Kaggle)
Python-E-Book-Zusammenfassung nützlich für die frei lesbare Datenanalyse
Datenanalyse beginnend mit Python (Datenvorverarbeitung - maschinelles Lernen)
Verwendung von "deque" für Python-Daten
Detaillierte Python-Techniken für die Datenformung (2)
Ich habe ein Python-Datenanalysetraining aus der Ferne durchgeführt
Vorbereitung auf die von Python 3 Engineer zertifizierte Datenanalyseprüfung
JupyterLab Grundeinstellung 2 für die Datenanalyse (pip)
JupyterLab Basic Setup für die Datenanalyse (pip)
Datenanalyse in Python Zusammenfassung der Quellen, die Anfänger zuerst betrachten sollten
Datenanalyse zur Verbesserung von POG 2 ~ Analyse mit Jupiter-Notebook ~
Python-Vorlage, die eine Protokollanalyse mit explosiver Geschwindigkeit durchführt
Python3 Engineer Zertifizierungsdatenanalyse Test selbst erstellte Problemerfassung
Python 3 Engineer Zertifizierungsdatenanalyse Prüfung Pre-Exam Learning
Eine Einführung in die statistische Modellierung für die Datenanalyse
[Python] Datenanalyse, maschinelles Lernen (Kaggle) -Datenvorverarbeitung-
Verwendung von Datenanalysetools für Anfänger
Zeigen Sie FX (Forex) Daten Candle Stick in Python an
Datenanalyse in Python: Ein Hinweis zu line_profiler
[Python] Fluss vom Web-Scraping zur Datenanalyse
Aufgezeichnete Umgebung für die Datenanalyse mit Python
Astro: Häufig verwendete Python-Module / -Funktionen zur Analyse