Seite 1 von 1

Covid19 Infizierte aus CSV auslesen und bearbeiten

Verfasst: Sonntag 7. Juni 2020, 13:41
von schingschank
Guten Tag,
Für ein Python-Projekt muss ich die Anzahl der weltweit mit Covid19 Infizierten mit Python aus einer CSV-Datei auslesen und dann mittels Matplotlib über einen Zeitverlauf grafisch darstellen.

Der Link zu der CSV-Datei ist hier https://github.com/CSSEGISandData/COVID ... global.csv

Problem:Ich muss jetzt die einzelnen Spalten addieren, da in dieser CSV nur die Daten für jedes Land einzeln vorliegen und nicht wie benötigt weltweit pro Tag.
Kann mir jemand sagen wie ich das programmieren kann ?
Es soll zum Schluss eine Grafik entstehen in der die Infizierten weltweit über den zeitlichen Verlauf abgebildet werden.

Vielen Dank im Voraus

Re: Covid19 Infizierte aus CSV auslesen und bearbeiten

Verfasst: Sonntag 7. Juni 2020, 14:09
von Sirius3
Was hast Du bisher schon versucht? Was sollt Ihr benutzen? Pandas?

Re: Covid19 Infizierte aus CSV auslesen und bearbeiten

Verfasst: Sonntag 7. Juni 2020, 14:17
von schingschank
Hey,
Ja mit Pandas.
Wir können bisher die Datei von der Webseite auslesen und bei uns als CSV lokal auf dem Rechner speichern.

Jetzt müssten wir die CSV bearbeiten, sodass wir alle Zeilen addieren damit wir für jeden Tag den aktuellen Wert weltweit der Infizierten haben.
Vielleicht als neue CSV abspeichern ?
Wissen allerdings nicht wie wir das programmieren.

Re: Covid19 Infizierte aus CSV auslesen und bearbeiten

Verfasst: Sonntag 7. Juni 2020, 14:18
von schingschank
#Importiren der notwendigen Bibliotheken
import datetime as dt
import matplotlib.pyplot as plt
from matplotlib import style
import pandas_datareader.data as web
import pandas as pd
import requests
import io

#auslesen der Infizierten aus externer CSV Datei
url = 'https://raw.githubusercontent.com/CSSEG ... global.csv'
s=requests.get(url).content
c=pd.read_csv(io.StringIO(s.decode('utf-8')))


#ablegen in CSV Datei
c.to_csv('Infizierte.csv')

df = pd.read_csv('Infizierte.csv', parse_dates=True, index_col=0)
df.plot()
plt.show()
#ausgeben der Infizierten
print(c)

Re: Covid19 Infizierte aus CSV auslesen und bearbeiten

Verfasst: Sonntag 7. Juni 2020, 14:39
von Sirius3
Wichtig sind zu allererst gute Variablennamen. s und c sind das garantiert nicht.
datetime, style oder web werden zwar importiert, aber nicht genutzt.
Statt den content selbst zu dekodieren, benutzt man .text, aber statt erst den Text zu lesen und dann wieder in ein File-Ähnliches Objekt mit StringIO zu packen, benutzt man gleich die Tatsache, dass das Response-Objekt von requests sich wie ein File-Objekt verhält. Aber statt erst einen Request selbst zu erzeugen, benutzt man einfach Pandas, das direkt URLs lesen kann:

Code: Alles auswählen

url = 'https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_time_series/time_series_covid19_confirmed_global.csv'
time_series = pd.read_csv(url)
Hast Du Dir schon die Dokumentation von so einem Pandas-Dataframe durchgelesen und mal überflogen, welche Methoden es gibt und welche denn für Dein Problem geeignet sein könnte.
Summieren heißt ja auf englisch ›sum‹.

Re: Covid19 Infizierte aus CSV auslesen und bearbeiten

Verfasst: Sonntag 7. Juni 2020, 21:31
von snafu
Übrigens: read_csv() hat auch einen Parameter für die Kodierung, falls das Einlesen mal aufgrund dessen nicht auf Anhieb klappen sollte.

Das Problem hört sich nach einem Fall für cumsum() an.

Re: Covid19 Infizierte aus CSV auslesen und bearbeiten

Verfasst: Sonntag 7. Juni 2020, 21:51
von __blackjack__
@snafu: Nope, da sind nicht die neuen Fälle für jeden Tag, sondern die Gesamtfälle an jedem Tag gelistet. Einfaches `sum()` an der richtigen Stelle reicht. Nach dem man die Spalten losgeworden ist bei denen aufsummieren keinen Sinn macht. Also beispielsweise die Ländernamen und die Längen- und Breitengrade.

Re: Covid19 Infizierte aus CSV auslesen und bearbeiten

Verfasst: Montag 8. Juni 2020, 06:30
von einfachTobi
Hinweis zu den Daten: Wenn du die Anzahl der aktuell weltweit mit Corona infizierten haben willst (so klingt es im ersten Post), musst du noch die Werte der Datensätze 'deaths' und 'recovered' davon abziehen.

Re: Covid19 Infizierte aus CSV auslesen und bearbeiten

Verfasst: Montag 8. Juni 2020, 22:16
von __blackjack__
Wenn man das macht, kann man diese Grafik damit erstellen:
Bild
🙂