refactoring

This commit is contained in:
frankknoll
2022-02-01 09:34:35 +01:00
parent 20915c14b8
commit 6a9b8fca89

View File

@@ -40,6 +40,7 @@
" 'VAERSDATA':\n",
" self._read_csv(\n",
" folder + year + \"VAERSDATA.csv\",\n",
" # FK-TODO: use Column enum\n",
" ['VAERS_ID', 'DIED', 'L_THREAT', 'DISABLE', 'HOSPITAL', 'ER_VISIT']),\n",
" 'VAERSVAX':\n",
" self._read_csv(\n",
@@ -122,6 +123,11 @@
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"\n",
"class BatchCodeTableFactory:\n",
" \n",
" @staticmethod\n",
" def createBatchCodeTable(df : pd.DataFrame):\n",
" def filterDataFrame(df, col):\n",
" return df[df[col] == 'Y'][['VAX_LOT']]\n",
@@ -134,17 +140,10 @@
" }\n",
" return pd.concat(batchCodeTableDict, axis = 'columns').replace(to_replace = np.nan, value = 0)\n",
"\n",
"def createManufacturerByBatchCodeTable(df):\n",
" manufacturerByBatchCodeTable = df[['VAX_LOT', 'VAX_MANU']]\n",
" manufacturerByBatchCodeTable = manufacturerByBatchCodeTable.drop_duplicates(subset = ['VAX_LOT'])\n",
" return manufacturerByBatchCodeTable.set_index('VAX_LOT')\n",
"\n",
"def createCompanyByBatchCodeTable(df):\n",
" return createManufacturerByBatchCodeTable(df).rename(columns = {\"VAX_MANU\": \"COMPANY\"})\n",
"\n",
" # create table from https://www.howbadismybatch.com/combined.html\n",
" # FK-TODO: DRY with createBatchCodeTable()\n",
"def createSevereEffectsBatchCodeTable(df):\n",
" @staticmethod\n",
" def createSevereEffectsBatchCodeTable(df : pd.DataFrame):\n",
" def filterDataFrame(df, col):\n",
" return df[df[col] == 'Y']['VAX_LOT']\n",
"\n",
@@ -161,12 +160,22 @@
" # add Company column:\n",
" batchCodeTable = pd.merge(\n",
" batchCodeTable,\n",
" createCompanyByBatchCodeTable(df),\n",
" BatchCodeTableFactory._createCompanyByBatchCodeTable(df),\n",
" how = 'left',\n",
" left_index = True,\n",
" right_index = True,\n",
" validate = 'one_to_one')\n",
" return batchCodeTable.replace(to_replace = np.nan, value = 0)\n"
" return batchCodeTable.replace(to_replace = np.nan, value = 0)\n",
"\n",
" @staticmethod\n",
" def _createManufacturerByBatchCodeTable(df):\n",
" manufacturerByBatchCodeTable = df[['VAX_LOT', 'VAX_MANU']]\n",
" manufacturerByBatchCodeTable = manufacturerByBatchCodeTable.drop_duplicates(subset = ['VAX_LOT'])\n",
" return manufacturerByBatchCodeTable.set_index('VAX_LOT')\n",
"\n",
" @staticmethod\n",
" def _createCompanyByBatchCodeTable(df):\n",
" return BatchCodeTableFactory._createManufacturerByBatchCodeTable(df).rename(columns = {\"VAX_MANU\": \"COMPANY\"})\n"
]
},
{
@@ -415,7 +424,7 @@
"\n",
" def _test_createBatchCodeTable(self, dataFrame):\n",
" # When\n",
" batchCodeTable = createBatchCodeTable(dataFrame)\n",
" batchCodeTable = BatchCodeTableFactory.createBatchCodeTable(dataFrame)\n",
"\n",
" # Then\n",
" batchCodeTableExpected = pd.DataFrame(\n",
@@ -469,7 +478,7 @@
" dataFrame = DataFrameFilter(dataFrame).filterForSevereEffects(dose = '1')\n",
"\n",
" # When\n",
" batchCodeTable = createSevereEffectsBatchCodeTable(dataFrame)\n",
" batchCodeTable = BatchCodeTableFactory.createSevereEffectsBatchCodeTable(dataFrame)\n",
"\n",
" # Then\n",
" batchCodeTableExpected = pd.DataFrame(\n",
@@ -510,7 +519,7 @@
" vaersDescrs = VaersDescrReader(\"VAERS\").readAllVaersDescrs()\n",
" dataFrame = VaersDescr2DataFrameConverter.createDataFrameFromDescrs(vaersDescrs)\n",
" dataFrameFilter = DataFrameFilter(dataFrame)\n",
" batchCodeTable = createBatchCodeTable(dataFrameFilter.filterBy(manufacturer = manufacturer, dose = '1'))\n",
" batchCodeTable = BatchCodeTableFactory.createBatchCodeTable(dataFrameFilter.filterBy(manufacturer = manufacturer, dose = '1'))\n",
" display(manufacturer, batchCodeTable)\n",
" batchCodeTable.to_excel(excelFile)"
]
@@ -538,7 +547,7 @@
" vaersDescrs = VaersDescrReader(\"VAERS\").readAllVaersDescrs()\n",
" dataFrame = VaersDescr2DataFrameConverter.createDataFrameFromDescrs(vaersDescrs)\n",
" dataFrameFilter = DataFrameFilter(dataFrame)\n",
" severeEffectsBatchCodeTable = createSevereEffectsBatchCodeTable(dataFrameFilter.filterForSevereEffects(dose = '1'))\n",
" severeEffectsBatchCodeTable = BatchCodeTableFactory.createSevereEffectsBatchCodeTable(dataFrameFilter.filterForSevereEffects(dose = '1'))\n",
" display('severeEffectsBatchCodeTable', severeEffectsBatchCodeTable)\n",
" severeEffectsBatchCodeTable.to_excel(excelFile)"
]