Graphische Darstellung von Inzidenzen nach Altersgruppen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
IsoldeMaduschen
User
Beiträge: 2
Registriert: Montag 6. Juni 2022, 16:35

Hallo zusammen,

ich bin aktuell ein wenig dabei Python auszuprobieren und wollte mal als persönliches "Projekt" die Inzidenzen graphisch selber mal darstellen.
Soweit hat das auch geklappt ... anbei mein Code:

""
Bevölkerung = pd.read_csv("https://raw.githubusercontent.com/olive ... zahlen.csv", sep=";", decimal=",")

Einwohner_DE = Einwohner[(Einwohner.Bezeichnung == "Land")]["Bevölkerung"].sum()

summe_inz = summe_infiziert.rolling(7).sum()/Einwohner_DE*100000
ax = summe_inz.plot(figsize=[20,10], fontsize=15, lw=3)

ax.set_ylabel("Inzidenz", fontsize=15)
ax.set_xlabel("Meldedatum", fontsize=15)
ax.set_title("Inzidenz Verlauf Deutschland komplett", fontsize=20)
ax.grid()
ax.xaxis.set_major_locator(dt.MonthLocator(interval=2))
ax.xaxis.set_major_formatter(dt.DateFormatter("%m-%Y"))
""

Jetzt wollte ich das Ganze nochmal nach Altersgruppen separieren, leider stoße ich hier aber echt auf meine Grenzen und wollte mal höflichst fragen, ob es von eurer Seite aus etwaige Denkanstöße gäbe :)

Ich freue mich auf jede Hilfe!

Liebe Grüße
Benutzeravatar
__blackjack__
User
Beiträge: 14078
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@IsoldeMaduschen: Das klappt so nicht weil `Einwohner` nicht definiert ist.
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
IsoldeMaduschen
User
Beiträge: 2
Registriert: Montag 6. Juni 2022, 16:35

Hallo,

vielen Dank für die schnelle Antwort, sorry - hatte den Code gestern noch abgeändert und die alte und zu kurze Version hochgeladen, anbei der richtige...

""
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.dates as dt
from datetime import timedelta


%matplotlib inline
pd.set_option('display.max_columns', None)
pd.set_option('display.max_rows', None)

RKIData = pd.read_csv("https://media.githubusercontent.com/med ... tionen.csv")

RKIData = RKIData[RKIData.Geschlecht.str.contains("unbekannt") == False]
RKIData = RKIData[RKIData.Altersgruppe.str.contains("unbekannt") == False]

RKIData = RKIData.drop(['IdLandkreis'],axis=1)

RKIData.head()

RKIData["Meldedatum"] = pd.to_datetime(RKIData.Meldedatum).dt.tz_localize(None)

RKIData["Refdatum"] = pd.to_datetime(RKIData.Refdatum).dt.tz_localize(None)




nur_inf = RKIData[(RKIData.NeuerFall == 0) | (RKIData.NeuerFall == 1)]
nur_tod = RKIData[(RKIData.NeuerTodesfall == 0) | (RKIData.NeuerTodesfall == 1)]

#Gesamtzahl der Infizierten
infiziert = nur_inf["AnzahlFall"].sum()
infiziert

#Gesamtzahl der Verstorbenen
verstorben = nur_tod["AnzahlTodesfall"].sum()
verstorben

#Zahl der Infizierten nach Altersgruppen und Geschlecht - Balkendiagramm

RKI_geschl = nur_inf[(nur_inf.Geschlecht == "M") | (nur_inf.Geschlecht == "W")]

Part3 = pd.DataFrame((RKI_geschl.groupby(["Altersgruppe", "Geschlecht"])["AnzahlFall"].sum()))
Part3.groupby(['Geschlecht','Altersgruppe']).sum().sort_values(by=["Geschlecht"])



ax = Part3.pivot_table(index='Altersgruppe', columns='Geschlecht')[:-1].plot(kind = 'bar', y = 'AnzahlFall',
figsize = [20,10], width = 0.8,ylabel = "Anzahl Fälle",
title = " Zahl der Infizierten nach Altersgruppen und Geschlecht", fontsize=16)

ax.set_title("Zahl der Infizierten nach Altersgruppen und Geschlecht", fontsize=20)
ax.set_xlabel("Altersgruppe, Geschlecht", fontsize=16)
ax.set_ylabel("Anzahl Fälle", fontsize=16)




#Anzahl Todesfälle nach Altersgruppe und Geschlecht - Balkendiagramm

Part4 = pd.DataFrame((RKI_geschl.groupby(["Altersgruppe", "Geschlecht"])["AnzahlTodesfall"].sum()))
Part4.groupby(['Geschlecht','Altersgruppe']).sum().sort_values(by=["Geschlecht"])



ax = Part4.pivot_table(index='Altersgruppe', columns='Geschlecht')[:-1].plot(kind = 'bar', y = 'AnzahlTodesfall'
,figsize = [20,10], width = 0.8,ylabel = "Anzahl Todesfälle",
title = " Zahl der Tode nach Altersgruppen und Geschlecht", fontsize=16)

ax.set_xlabel("Altersgruppe, Geschlecht", fontsize=16)
ax.set_ylabel("Anzahl Todesfälle", fontsize=16)

# Verhältnis der Infektionen und Todesfälle nach Alter und Geschlecht

Part5 = RKIData[["AnzahlFall", "AnzahlTodesfall", "Geschlecht", "Altersgruppe"]]
Part5.groupby(['Geschlecht','Altersgruppe']).sum().sort_values(by=["AnzahlFall"])

Part5.groupby(['Geschlecht','Altersgruppe']).sum().sort_values(by=["AnzahlFall"])

GADaten = Part5.groupby(['Geschlecht','Altersgruppe']).sum().sort_values(by=["AnzahlFall"])

thePlotGADaten = GADaten.plot(kind="bar",secondary_y="AnzahlTodesfall",figsize=(20,10))

thePlotGADaten.get_figure().savefig('geschlecht-altersgruppe.png',dpi=200,pad_inches=5)

# Zeitverlauf der NEU Infizierten

summe_infiziert = nur_inf.groupby("Meldedatum")["AnzahlFall"].sum()


ax_inf = summe_infiziert.plot(figsize=(20,10))
ax_inf.legend(["Anzahl Neuinfektionen"], fontsize=14)
ax_inf.set_xlabel("Referenzdatum",fontsize=20)
ax_inf.set_ylabel("NeuerFall",color="black",fontsize=20)

ax_inf.xaxis.set_major_locator(dt.MonthLocator(interval=2))
ax_inf.xaxis.set_major_formatter(dt.DateFormatter("%m-%Y"))

# Zeitverlauf der Gesamtzahl der Verstorbenen

summe_tod = nur_tod.groupby("Meldedatum")["AnzahlTodesfall"].sum()

ax_tod = np.cumsum(summe_tod).plot(figsize=(20,10), fontsize=15, lw=3)

ax_tod.legend(["Anzahl Todesfälle"], fontsize=14)
ax_tod.set_title("Zeitverlauf der Gesamtzahl der Verstorbenen", fontsize=20)
ax_tod.set_xlabel("Meldedatum", fontsize=15)
ax_tod.set_ylabel("Todesfälle", fontsize=20)
ax_tod.xaxis.set_major_locator(dt.MonthLocator(interval=2))
ax_tod.xaxis.set_major_formatter(dt.DateFormatter("%m-%Y"))

# Zeitverlauf der NEU-Verstorbenen



summe_tod = nur_tod.groupby("Meldedatum")["AnzahlTodesfall"].sum()

ax_inf = summe_tod.plot(figsize=(20,10))
ax_inf.legend(["Anzahl Neuverstorbene"], fontsize=14)
ax_inf.set_xlabel("Referenzdatum",fontsize=20)
ax_inf.set_ylabel("Neuer Todesfall",color="black",fontsize=20)

ax_inf.xaxis.set_major_locator(dt.MonthLocator(interval=2))
ax_inf.xaxis.set_major_formatter(dt.DateFormatter("%m-%Y"))

# 7-Tage-Inzidenz im Zeitverlauf

#Aktuelle Bevölkerungszahlen raussuchen

Bevölkerung = pd.read_csv("https://raw.githubusercontent.com/olive ... zahlen.csv",
sep=";", decimal=",")

Einwohner_DE = Bevölkerung[(Bevölkerung.Bezeichnung == "Land")]["Bevölkerung"].sum()


summe_inz = summe_infiziert.rolling(7).sum()/Einwohner_DE*100000

ax = summe_inz.plot(figsize=[20,10], fontsize=15, lw=3)

ax.set_ylabel("Inzidenz", fontsize=15)
ax.set_xlabel("Meldedatum", fontsize=15)
ax.set_title("Inzidenz Verlauf Deutschland komplett", fontsize=20)
ax.grid()
ax.xaxis.set_major_locator(dt.MonthLocator(interval=2))
ax.xaxis.set_major_formatter(dt.DateFormatter("%m-%Y"))

# 7-Tage-Inzidenz nach Altersgruppen im Zeitverlauf


""

Liebe Grüße und danke vorab!
Antworten