[PYTHON] Ich habe versucht, den Grad der Koronavirusinfektion auf der Seekarten-Wärmekarte anzuzeigen

Ich habe versucht, den Infektionszustand der Korona auf der Wärmekarte von Seaborn anzuzeigen

Zweck

Visualisieren Sie die Ausbreitung von Corona in jeder Präfektur Das Ziel ist dies. colona.png

Methode

Verwenden Sie Python Seaborn. Klicken Sie hier für die Anzahl der infizierten Personen (bis zu 4/5). https://toyokeizai.net/sp/visual/tko/covid19/ Klicken Sie hier, um Daten zum Präfekturnamen anzuzeigen. https://gist.github.com/mugifly/d6e68a516de4a008687c Hier ist eine Zusammenfassung verschiedener Dinge. https://github.com/kyasby/colona.git

Bibliothek importieren

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
%matplotlib inline

% matplotlib inline ist magisch. Numpy-Importe für cumsum ().

Importieren Sie die CSV-Nummer der infizierten Personen

df = pd.read_csv("COVID-19.csv")
df = df[["Beratungspräfektur", "Präfektur des Wohnsitzes", "Anzahl der Personen", "Datum des Beginns", "Festes Datum"]]
df = df.rename(columns={"Alter":"age", "Sex":"sex", "Beratungspräfektur":"hsp", "Präfektur des Wohnsitzes":"house"})
df

Extrahieren Sie die erforderlichen Spalten und benennen Sie sie gleichzeitig um. Durch Übergeben einer Liste an df [] können Sie nur diese Spalte extrahieren.

df.rename(columns={"old_columns_name":"new_name"},index={"old_index_name":"new_name"}) Sie können den Spaltennamen und den Indexnamen ändern, indem Sie ein Wörterbuch übergeben, z.

Datum machen

for i, row in df.iterrows():
    if type(row["Datum des Beginns"])==float:
        df.at[i, "Datum des Beginns"] = row["Festes Datum"]
    else:
        pass
df = df.rename(columns = {"Datum des Beginns":"Date"})

Ich möchte, dass die horizontale Achse der Wärmekarte das Datum ist, also erhalte ich das Datum. Da NaN jedoch wie unten gezeigt im "Startdatum" enthalten ist, ersetzen Sie es in diesem Fall durch das "bestätigte Datum".

hsp house Anzahl der Personen Datum des Beginns Festes Datum
Präfektur Kanagawa Präfektur Kanagawa 1 1/3/2020 1/15/2020
Tokio Volksrepublik China 1 1/14/2020 1/24/2020
Tokio Volksrepublik China 1 1/21/2020 1/25/2020
Präfektur Osaka Präfektur Osaka 1 1/20/2020 1/29/2020
Unbekannt Volksrepublik China 1 1/29/2020 1/30/2020
Präfektur Chiba Volksrepublik China 1 NaN 1/30/2020

Ändern Sie abschließend den Spaltennamen in "Datum".

NaN Urteil type (row [" Startdatum "]) == float Ich habe es so geschrieben, aber bitte lassen Sie mich wissen, ob es einen besseren Weg gibt, es zu schreiben.

Präfekturale CSV importieren

todofuken = pd.read_csv("japan.csv", header=None)[0]

Ersetzen Sie einen Teil von hsp

df["hsp"].value_counts()

Wenn Sie also den Inhalt von "hsp" überprüfen, können Sie sehen, dass es "Haneda Airport" und "Unknown" gibt.

スクリーンショット 2020-04-06 16.04.52.png

df["hsp"]= df["hsp"].apply(lambda x : "Andere" if x not in list(todofuken) else x)

Verwenden Sie apply und die Lambda-Funktion, um den Inhalt von df ["hsp"] teilweise neu zu schreiben. Wenn es nicht in der Liste der Präfekturnamen enthalten ist, geben Sie "Andere" ein. Wenn dies der Fall ist, geben Sie die Präfektur so ein, wie sie ist. Bei Verwendung der Apply- und Lambda-Funktionen wird wahrscheinlich ein Syntaxfehler ohne sonst angezeigt. (Nicht bestätigt) Bitte seien Sie vorsichtig.

Bisher sieht df so aus.

hsp house Anzahl der Personen Date Festes Datum
Präfektur Kanagawa Präfektur Kanagawa 1 1/3/2020 1/15/2020
Tokio Volksrepublik China 1 1/14/2020 1/24/2020
Tokio Volksrepublik China 1 1/21/2020 1/25/2020
Präfektur Aichi Volksrepublik China 1 1/23/2020 1/26/2020
Präfektur Aichi Volksrepublik China 1 1/22/2020 1/28/2020
Präfektur Nara Präfektur Nara 1 1/14/2020 1/28/2020
Hokkaido Volksrepublik China 1 1/26/2020 1/28/2020
Präfektur Osaka Präfektur Osaka 1 1/20/2020 1/29/2020

Pivot

pvt = df.pivot_table(index="hsp", columns="Date", values="Anzahl der Personen").fillna(0)
pvt = pvt.rename(index = dict(zip(jpn[0], jpn[2]))).rename(index={"Andere":"others"})

pandas hat eine Methode namens pivot_table, mit der Sie buchstäblich eine Pivot-Tabelle erstellen können. (Sie benötigen kein Excel.) Füllen Sie NaN außerdem mit 0.

Benennen Sie es dann von Hokkaido in Hokkaido um. In meiner Umgebung werden Zeichen nicht angezeigt, wenn der Indexname oder der Spaltenname Japanisch enthält. Es scheint, dass es durch die Installation von etwas gelöst wird, aber es wird durch Umbenennen behandelt. (Bitte lassen Sie mich wissen, ob es einen besseren Weg gibt.)

Der Inhalt von jpn [0] sind die Namen von Präfekturen in chinesischen Schriftzeichen wie Hokkaido und Aomori. Der Inhalt von jpn [2] sind die Namen von Präfekturen in römischen Schriftzeichen wie Hokkaido und Aomori.

Koppeln Sie sie mit der "Zip-Funktion", machen Sie sie mit der "Dikt-Funktion" zu einem Wörterbuch und übergeben Sie sie an die "Umbenennungsfunktion". Ändern Sie außerdem "Andere" in "Andere".

Bis zu diesem Punkt sieht der Datenrahmen so aus. スクリーンショット 2020-04-06 0.42.59.png

Kumulative Anzahl

for i in range(len(pvt)):
    pvt.iloc[i]=pvt.iloc[i].cumsum()

Extrahieren Sie Zeile für Zeile aus pvt und verwenden Sie die Funktion cumsum () von numpy, um die kumulierte Anzahl von Personen zu ermitteln.

Auf diese Weise wurde es auf die kumulierte Anzahl von Personen aktualisiert. スクリーンショット 2020-04-06 0.46.14.png

Anzeigen und speichern

plt.figure(figsize=(20,10))
sns.heatmap(pvt.iloc[:,-60:] , linewidths=0, cmap='Spectral', cbar=True, xticklabels=5)
plt.savefig("colona.png ")

Ich habe beschlossen, den Tag des jungen Datums von vor 60 Tagen anzuzeigen, da es (zum Glück) nur wenige Infizierte gibt und es sinnlos ist, ihn anzuzeigen. Sie können : (Slice) verwenden. Zum Beispiel bedeutet "10: 20" 10 oder mehr und weniger als 20.

Ich konnte die Heatmap so anzeigen.

colona.png

Recommended Posts

Ich habe versucht, den Grad der Koronavirusinfektion auf der Seekarten-Wärmekarte anzuzeigen
Ich habe versucht, den allgemeinen Zustand der VTuber-Kanalbetrachter zu visualisieren
Ich habe versucht, PDF-Daten der medizinischen Online-Versorgung zu verwenden, die auf der Ausbreitung einer neuen Coronavirus-Infektion basieren
Ich habe versucht, den Höhenwert von DTM in einem Diagramm anzuzeigen
Ich habe versucht, das Verhalten des neuen Koronavirus mit dem SEIR-Modell vorherzusagen.
Ich habe versucht, die Wetterkarte einer Clusteranalyse zu unterziehen
Ich habe versucht, die Trapezform des Bildes zu korrigieren
Ich habe versucht, die Texte von Hinatazaka 46 zu vektorisieren!
Ich habe versucht, Objekte aus dem Bild des Steak-Set-Essens zu sortieren - Ähnliches Bild Wärmekartenerkennung
Ich habe versucht, die Daten des Laptops durch Booten unter Ubuntu zu retten
Ich habe versucht, die Literatur des neuen Corona-Virus mit Python automatisch an LINE zu senden
Ich habe versucht, die Spacha-Informationen von VTuber zu visualisieren
Ich habe versucht, den negativen Teil von Meros zu löschen
Ich habe versucht, die Stimmen der Sprecher zu klassifizieren
Ich habe versucht, die String-Operationen von Python zusammenzufassen
Ich habe versucht, die Eigenschaften der neuen Informationen über mit dem Corona-Virus infizierte Personen mit Wordcloud zu visualisieren
Ich habe versucht, die Entropie des Bildes mit Python zu finden
[Pferderennen] Ich habe versucht, die Stärke des Rennpferdes zu quantifizieren
Ich habe versucht zu simulieren, wie sich die Infektion mit Python ausbreitet
Ich habe versucht, mit TensorFlow den Durchschnitt mehrerer Spalten zu ermitteln
[Python] Ich habe versucht, die folgende Beziehung von Twitter zu visualisieren
[Maschinelles Lernen] Ich habe versucht, die Theorie von Adaboost zusammenzufassen
Ich habe versucht, das lokale Minimum der Goldstein-Preis-Funktion zu bekämpfen
Ich habe versucht, das Python-Skript unter Windows 10 von 2.7.11 auf 3.6.0 zu ändern
Ich habe versucht, die Punktgruppendaten-DB der Präfektur Shizuoka mit Vue + Leaflet anzuzeigen
Ich möchte eine wunderschön angepasste Wärmekarte der Korrelationsmatrix ausgeben. matplotlib edition
[Shell-Start] Ich habe versucht, die Shell mit einem billigen Linux-Board-G-Cluster auf dem Fernseher anzuzeigen
Ich habe versucht, das Musikgenre anhand des Songtitels im Recurrent Neural Network vorherzusagen
Ich habe versucht, den Ball zu bewegen
Ich habe versucht, eine Umgebung von MkDocs unter Amazon Linux zu erstellen
[Linux] Ich habe versucht, die Ressourcenbestätigungsbefehle zusammenzufassen
Ich habe versucht, den Index der Liste mithilfe der Aufzählungsfunktion abzurufen
Ich habe versucht, die Bewässerung des Pflanzgefäßes mit Raspberry Pi zu automatisieren
[Python] Ich habe die Route des Taifuns mit Folium auf die Karte geschrieben
Zeigen Sie das Bild der an den PC angeschlossenen Kamera auf der GUI an.
Ich habe versucht, das SD-Boot-Image von LicheePi Nano zu erstellen
Ich habe versucht, den auf Papier gestempelten Stempel mit OpenCV zu digitalisieren
Ich habe versucht, die Videowiedergabezeit anzuzeigen (OpenCV: Python-Version)
Ich habe am Wochenende versucht, mit Bitcoin Systre zu beginnen
Ich habe versucht, die GUI auf einem Mac mit X Window System anzuzeigen
Ich habe versucht, die Größe des logischen Volumes mit LVM zu erweitern
Ich habe versucht, die häufig verwendete Implementierungsmethode von pytest-mock zusammenzufassen
Ich habe versucht, die Effizienz der täglichen Arbeit mit Python zu verbessern
[Python] Ich habe versucht, die Nacht der Galaxienbahn mit WordCloud zu visualisieren!
Ich habe den asynchronen Server von Django 3.0 ausprobiert
Ich habe versucht, den Befehl umask zusammenzufassen
Ich habe versucht, die Trefferergebnisse von Hachinai mithilfe der Bildverarbeitung zu erhalten
Ich habe versucht, die Altersgruppe und die Ratenverteilung von Atcoder zu visualisieren
Ich versuchte das Weckwort zu erkennen
zoom Ich habe versucht, den Grad der Aufregung der Geschichte auf der Konferenz zu quantifizieren
Ich habe versucht, die Ähnlichkeit der Frageabsicht mit Doc2Vec von gensim abzuschätzen
Ich habe versucht, die Genauigkeit meines eigenen neuronalen Netzwerks zu verbessern
Ich habe versucht, die Version 2020 mit 100 Sprachverarbeitung zu lösen [Kapitel 3: Reguläre Ausdrücke 25-29]
Ich habe versucht, den Authentifizierungscode der Qiita-API mit Python abzurufen.
Ich habe versucht, die grafische Modellierung zusammenzufassen.
Passende Karaoke-Tasten ~ Ich habe versucht, es auf Laravel zu setzen ~ <auf dem Weg>
Zeigen Sie das Diagramm von tensorBoard auf jupyter an