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:
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
pip install" git + https://github.com/lisphilar/covid19-sir.git#egg=covsirphy "
#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.
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!
data_loader = cs.DataLoader("input")
Der Verzeichnisname kann geändert werden. Der Standardwert des ersten Arguments ist "Eingabe" und kann weggelassen werden.
# 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.
)
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 |
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")
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 |
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