diff --git a/src/intensivstationen/IntensiveCareBedsProvider.py b/src/intensivstationen/IntensiveCareBedsProvider.py new file mode 100644 index 00000000000..bab73b50080 --- /dev/null +++ b/src/intensivstationen/IntensiveCareBedsProvider.py @@ -0,0 +1,12 @@ +import pandas as pd + + +def getIntensiveCareBeds(timeSeries, kreis = None): + if kreis is not None: + return timeSeries[timeSeries['Kreis'] == kreis][['date', 'betten_belegt', 'betten_frei', 'Einwohnerzahl']] + else: + return timeSeries.groupby('date').agg(**{ + 'betten_belegt': pd.NamedAgg(column = 'betten_belegt', aggfunc = 'sum'), + 'betten_frei': pd.NamedAgg(column = 'betten_frei', aggfunc = 'sum'), + 'Einwohnerzahl': pd.NamedAgg(column = 'Einwohnerzahl', aggfunc = 'sum') + }).reset_index() \ No newline at end of file diff --git a/src/intensivstationen/Intensivstationen.ipynb b/src/intensivstationen/Intensivstationen.ipynb index c11facfe555..bf46b7856dd 100644 --- a/src/intensivstationen/Intensivstationen.ipynb +++ b/src/intensivstationen/Intensivstationen.ipynb @@ -33,6 +33,7 @@ "from IntensivstationenHtmlFileUpdater import saveLastUpdatedIntensivstationen, saveKreisOptions\n", "from KreiseReader import readKreise\n", "from KreisOptionsProvider import getKreisOptionsAndAlleLandkreise\n", + "from IntensiveCareBedsProvider import getIntensiveCareBeds\n", "\n", "\n", "pd.set_option('display.max_rows', 100)\n", @@ -81,18 +82,9 @@ "metadata": {}, "outputs": [], "source": [ + "kreise = readKreise(download = False)\n", "timeSeries = readTimeseries(download = needsUpdate)\n", - "timeSeries" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "62a20115", - "metadata": {}, - "outputs": [], - "source": [ - "timeSeries = ColumnsAdder(kreise = readKreise(download = False)).addKreisAndBundeslandAndEinwohnerzahlColumns(timeSeries)\n", + "timeSeries = ColumnsAdder(kreise).addKreisAndBundeslandAndEinwohnerzahlColumns(timeSeries)\n", "timeSeries" ] }, @@ -103,47 +95,11 @@ "metadata": {}, "outputs": [], "source": [ - "kreisValues = sorted(timeSeries['Kreis'].drop_duplicates().values)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "9c38ca16", - "metadata": {}, - "outputs": [], - "source": [ - "kreisOptions = getKreisOptionsAndAlleLandkreise(kreisValues)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "5dd8d864", - "metadata": {}, - "outputs": [], - "source": [ + "kreisValues = sorted(timeSeries['Kreis'].drop_duplicates().values)\n", + "kreisOptions = getKreisOptionsAndAlleLandkreise(kreisValues)\n", "saveKreisOptions(kreisOptions, toHtmlFile = \"../../docs/intensivstationen.html\")" ] }, - { - "cell_type": "code", - "execution_count": null, - "id": "997a4bdb", - "metadata": {}, - "outputs": [], - "source": [ - "def getIntensiveCareBeds(timeSeries, kreis = None):\n", - " if kreis is not None:\n", - " return timeSeries[timeSeries['Kreis'] == kreis][['date', 'betten_belegt', 'betten_frei', 'Einwohnerzahl']]\n", - " else:\n", - " return timeSeries.groupby('date').agg(**{\n", - " 'betten_belegt': pd.NamedAgg(column = 'betten_belegt', aggfunc = 'sum'),\n", - " 'betten_frei': pd.NamedAgg(column = 'betten_frei', aggfunc = 'sum'),\n", - " 'Einwohnerzahl': pd.NamedAgg(column = 'Einwohnerzahl', aggfunc = 'sum')\n", - " }).reset_index()" - ] - }, { "cell_type": "code", "execution_count": null,