diff --git a/HowBadIsMyBatch.ipynb b/HowBadIsMyBatch.ipynb index f8b2d4178e0..33a844920c3 100644 --- a/HowBadIsMyBatch.ipynb +++ b/HowBadIsMyBatch.ipynb @@ -172,7 +172,31 @@ "class AggregationHelper:\n", "\n", " @staticmethod\n", - " def aggregateAndFlattenColumnsAndRenameColumns(groupBy, aggFunctionsByColumn, columnNameMappingsDict):\n", + " def createSummationTable(\n", + " groupBy,\n", + " # FK-TODO: rename \"ADRs\" and \"Total reports\" to \"Total Number of Adverse Reaction Reports\" in all places\n", + " columnNameMappingsDict = {\n", + " \"DIED_size\": \"ADRs\",\n", + " \"DIED_sum\": \"DEATHS\",\n", + " \"L_THREAT_sum\": \"LIFE THREATENING ILLNESSES\",\n", + " \"DISABLE_sum\": \"DISABILITIES\",\n", + " 'HOSPITAL_sum': 'HOSPITALISATIONS',\n", + " 'ER_VISIT_sum': 'EMERGENCY ROOM OR DOCTOR VISITS'\n", + " }):\n", + " return AggregationHelper._aggregateAndFlattenColumnsAndRenameColumns(\n", + " groupBy = groupBy,\n", + " aggFunctionsByColumn = {\n", + " 'DIED': ['sum', 'size'],\n", + " 'L_THREAT': 'sum',\n", + " 'DISABLE': 'sum',\n", + " 'HOSPITAL': 'sum',\n", + " 'ER_VISIT': 'sum'\n", + " },\n", + " columnNameMappingsDict = columnNameMappingsDict)\n", + "\n", + " # FK-TODO: inline method\n", + " @staticmethod\n", + " def _aggregateAndFlattenColumnsAndRenameColumns(groupBy, aggFunctionsByColumn, columnNameMappingsDict):\n", " aggregatedDataFrame = groupBy.agg(aggFunctionsByColumn)\n", " AggregationHelper._flattenColumns(aggregatedDataFrame)\n", " return aggregatedDataFrame.rename(columns = columnNameMappingsDict)\n", @@ -198,34 +222,11 @@ "\n", " # create table from https://www.howbadismybatch.com/combined.html\n", " def createSevereEffectsBatchCodeTable(self):\n", - " batchCodeTable = BatchCodeTableHelper.createSummationTable(self.dataFrame.groupby('VAX_LOT'))\n", + " batchCodeTable = AggregationHelper.createSummationTable(self.dataFrame.groupby('VAX_LOT'))\n", " batchCodeTable = batchCodeTable[['ADRs', 'DEATHS', 'DISABILITIES', 'LIFE THREATENING ILLNESSES', 'HOSPITALISATIONS', 'EMERGENCY ROOM OR DOCTOR VISITS']]\n", " batchCodeTable = batchCodeTable.sort_values(by = 'ADRs', ascending = False)\n", " return self._addCompanyColumn(batchCodeTable, self._createCompanyByBatchCodeTable())\n", "\n", - " @staticmethod\n", - " def createSummationTable(\n", - " groupBy,\n", - " # FK-TODO: rename \"ADRs\" and \"Total reports\" to \"Total Number of Adverse Reaction Reports\" in all places\n", - " columnNameMappingsDict = {\n", - " \"DIED_size\": \"ADRs\",\n", - " \"DIED_sum\": \"DEATHS\",\n", - " \"L_THREAT_sum\": \"LIFE THREATENING ILLNESSES\",\n", - " \"DISABLE_sum\": \"DISABILITIES\",\n", - " 'HOSPITAL_sum': 'HOSPITALISATIONS',\n", - " 'ER_VISIT_sum': 'EMERGENCY ROOM OR DOCTOR VISITS'\n", - " }):\n", - " return AggregationHelper.aggregateAndFlattenColumnsAndRenameColumns(\n", - " groupBy = groupBy,\n", - " aggFunctionsByColumn = {\n", - " 'DIED': ['sum', 'size'],\n", - " 'L_THREAT': 'sum',\n", - " 'DISABLE': 'sum',\n", - " 'HOSPITAL': 'sum',\n", - " 'ER_VISIT': 'sum'\n", - " },\n", - " columnNameMappingsDict = columnNameMappingsDict)\n", - "\n", " def _addCompanyColumn(self, batchCodeTable, companyByBatchCodeTable):\n", " return pd.merge(\n", " batchCodeTable,\n", @@ -290,7 +291,7 @@ " # FK-TODO: DRY because it generates a subset of BatchCodeTableHelper.createSevereEffectsBatchCodeTable()\n", " @staticmethod\n", " def _getDoseTable(dataFrame):\n", - " doseTable = BatchCodeTableHelper.createSummationTable(\n", + " doseTable = AggregationHelper.createSummationTable(\n", " dataFrame,\n", " columnNameMappingsDict = {\n", " \"DIED_size\": \"Total reports\",\n",