refactoring
This commit is contained in:
@@ -208,19 +208,30 @@
|
||||
"source": [
|
||||
"import pandas as pd\n",
|
||||
"\n",
|
||||
"class BatchCodeTableHelper:\n",
|
||||
"class BatchCodeTableFactory:\n",
|
||||
"\n",
|
||||
" def __init__(self, dataFrame : pd.DataFrame):\n",
|
||||
" self.dataFrame = dataFrame\n",
|
||||
" @staticmethod\n",
|
||||
" def createBatchCodeTable(dataFrame : pd.DataFrame, manufacturer, dose):\n",
|
||||
" dataFrame = DataFrameFilter().filterByCovid19(dataFrame)\n",
|
||||
" dataFrame = DataFrameFilter().filterBy(dataFrame, manufacturer = manufacturer, dose = dose)\n",
|
||||
" return BatchCodeTableFactory._createSummationTableByVAX_LOT(dataFrame)[['ADRs', 'DEATHS', 'DISABILITIES', 'LIFE THREATENING ILLNESSES']]\n",
|
||||
"\n",
|
||||
" # create table from https://www.howbadismybatch.com/combined.html\n",
|
||||
" def createSevereEffectsBatchCodeTable(self):\n",
|
||||
" batchCodeTable = SummationTableFactory.createSummationTable(self.dataFrame.groupby('VAX_LOT'))\n",
|
||||
" @staticmethod\n",
|
||||
" def createSevereEffectsBatchCodeTable(dataFrame : pd.DataFrame, dose):\n",
|
||||
" dataFrame = DataFrameFilter().filterByCovid19(dataFrame)\n",
|
||||
" dataFrame = DataFrameFilter().filterBy(dataFrame, dose = dose)\n",
|
||||
" return BatchCodeTableFactory._createSummationTableByVAX_LOT(dataFrame)\n",
|
||||
"\n",
|
||||
" @staticmethod\n",
|
||||
" def _createSummationTableByVAX_LOT(dataFrame):\n",
|
||||
" batchCodeTable = SummationTableFactory.createSummationTable(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",
|
||||
" return BatchCodeTableFactory._addCompanyColumn(batchCodeTable, BatchCodeTableFactory._createCompanyByBatchCodeTable(dataFrame))\n",
|
||||
"\n",
|
||||
" def _addCompanyColumn(self, batchCodeTable, companyByBatchCodeTable):\n",
|
||||
" @staticmethod\n",
|
||||
" def _addCompanyColumn(batchCodeTable, companyByBatchCodeTable):\n",
|
||||
" return pd.merge(\n",
|
||||
" batchCodeTable,\n",
|
||||
" companyByBatchCodeTable,\n",
|
||||
@@ -229,29 +240,15 @@
|
||||
" right_index = True,\n",
|
||||
" validate = 'one_to_one')\n",
|
||||
"\n",
|
||||
" def _createCompanyByBatchCodeTable(self):\n",
|
||||
" return self._createManufacturerByBatchCodeTable().rename(columns = {\"VAX_MANU\": \"COMPANY\"})\n",
|
||||
" @staticmethod\n",
|
||||
" def _createCompanyByBatchCodeTable(dataFrame):\n",
|
||||
" return BatchCodeTableFactory._createManufacturerByBatchCodeTable(dataFrame).rename(columns = {\"VAX_MANU\": \"COMPANY\"})\n",
|
||||
"\n",
|
||||
" def _createManufacturerByBatchCodeTable(self):\n",
|
||||
" manufacturerByBatchCodeTable = self.dataFrame[['VAX_LOT', 'VAX_MANU']]\n",
|
||||
" @staticmethod\n",
|
||||
" def _createManufacturerByBatchCodeTable(dataFrame):\n",
|
||||
" manufacturerByBatchCodeTable = dataFrame[['VAX_LOT', 'VAX_MANU']]\n",
|
||||
" manufacturerByBatchCodeTable = manufacturerByBatchCodeTable.drop_duplicates(subset = ['VAX_LOT'])\n",
|
||||
" return manufacturerByBatchCodeTable.set_index('VAX_LOT')\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"class BatchCodeTableFactory:\n",
|
||||
"\n",
|
||||
" @staticmethod\n",
|
||||
" def createBatchCodeTable(dataFrame : pd.DataFrame, manufacturer, dose):\n",
|
||||
" dataFrame = DataFrameFilter().filterByCovid19(dataFrame)\n",
|
||||
" dataFrame = DataFrameFilter().filterBy(dataFrame, manufacturer = manufacturer, dose = dose)\n",
|
||||
" return BatchCodeTableHelper(dataFrame).createSevereEffectsBatchCodeTable()[['ADRs', 'DEATHS', 'DISABILITIES', 'LIFE THREATENING ILLNESSES']]\n",
|
||||
"\n",
|
||||
" # create table from https://www.howbadismybatch.com/combined.html\n",
|
||||
" @staticmethod\n",
|
||||
" def createSevereEffectsBatchCodeTable(dataFrame : pd.DataFrame, dose):\n",
|
||||
" dataFrame = DataFrameFilter().filterByCovid19(dataFrame)\n",
|
||||
" dataFrame = DataFrameFilter().filterBy(dataFrame, dose = dose)\n",
|
||||
" return BatchCodeTableHelper(dataFrame).createSevereEffectsBatchCodeTable()\n"
|
||||
" return manufacturerByBatchCodeTable.set_index('VAX_LOT')\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -281,7 +278,6 @@
|
||||
" dataFrame['VAX_DOSE_SERIES'].rename('Dose')\n",
|
||||
" ]))\n",
|
||||
"\n",
|
||||
" # FK-TODO: DRY because it generates a subset of BatchCodeTableHelper.createSevereEffectsBatchCodeTable()\n",
|
||||
" @staticmethod\n",
|
||||
" def _getDoseTable(dataFrame):\n",
|
||||
" doseTable = SummationTableFactory.createSummationTable(\n",
|
||||
|
||||
Reference in New Issue
Block a user