adding column 'Lethality (%)'
This commit is contained in:
@@ -229,10 +229,10 @@
|
||||
"class BatchCodeTableFactory:\n",
|
||||
"\n",
|
||||
" @staticmethod\n",
|
||||
" def createBatchCodeTable(dataFrame : pd.DataFrame, dose):\n",
|
||||
" def createBatchCodeTable(dataFrame : pd.DataFrame, dose, minADRsForLethality = None):\n",
|
||||
" dataFrame = DataFrameFilter().filterByCovid19(dataFrame)\n",
|
||||
" dataFrame = DataFrameFilter().filterBy(dataFrame, dose = dose)\n",
|
||||
" return BatchCodeTableFactory._createSummationTableByVAX_LOT(dataFrame)[\n",
|
||||
" batchCodeTable = BatchCodeTableFactory._createSummationTableByVAX_LOT(dataFrame)[\n",
|
||||
" [\n",
|
||||
" 'Total Number of Adverse Reaction Reports',\n",
|
||||
" 'Deaths',\n",
|
||||
@@ -241,6 +241,9 @@
|
||||
" 'Company',\n",
|
||||
" 'Lethality (%)'\n",
|
||||
" ]]\n",
|
||||
" if minADRsForLethality is not None:\n",
|
||||
" batchCodeTable.loc[batchCodeTable['Total Number of Adverse Reaction Reports'] < minADRsForLethality, 'Lethality (%)'] = np.nan\n",
|
||||
" return batchCodeTable\n",
|
||||
"\n",
|
||||
" # create table from https://www.howbadismybatch.com/combined.html\n",
|
||||
" @staticmethod\n",
|
||||
@@ -708,7 +711,7 @@
|
||||
"\n",
|
||||
"class BatchCodeTableFactoryTest(unittest.TestCase):\n",
|
||||
"\n",
|
||||
" def test_createSummationTable(self):\n",
|
||||
" def test_createSevereEffectsBatchCodeTable(self):\n",
|
||||
" # Given\n",
|
||||
" dataFrame = VaersDescr2DataFrameConverter.createDataFrameFromDescrs(\n",
|
||||
" [\n",
|
||||
@@ -749,7 +752,8 @@
|
||||
" index = pd.Index(['025L20A', '037K20A'], name = 'VAX_LOT'))\n",
|
||||
" assert_frame_equal(batchCodeTable, batchCodeTableExpected, check_dtype = False)\n",
|
||||
"\n",
|
||||
" def test_createBatchCodeTable2(self):\n",
|
||||
" def test_createBatchCodeTable(self):\n",
|
||||
" # Given\n",
|
||||
" dataFrame = VaersDescr2DataFrameConverter.createDataFrameFromDescrs(\n",
|
||||
" [\n",
|
||||
" {\n",
|
||||
@@ -789,15 +793,73 @@
|
||||
" ])\n",
|
||||
" self._test_createBatchCodeTable(dataFrame, '1')\n",
|
||||
"\n",
|
||||
" def test_createBatchCodeTable(self):\n",
|
||||
" def test_createBatchCodeTable_minADRsForLethality(self):\n",
|
||||
" # Given\n",
|
||||
" dataFrame = VaersDescr2DataFrameConverter.createDataFrameFromDescrs(\n",
|
||||
" [\n",
|
||||
" {\n",
|
||||
" 'VAERSDATA': TestHelper.createDataFrame(\n",
|
||||
" columns = ['DIED', 'L_THREAT', 'DISABLE', 'HOSPITAL', 'ER_VISIT'],\n",
|
||||
" data = [ [1, 0, 0, 0, 0],\n",
|
||||
" [0, 0, 1, 0, 0]],\n",
|
||||
" index = [\n",
|
||||
" \"0916600\",\n",
|
||||
" \"0916601\"]),\n",
|
||||
" 'VAERSVAX': TestHelper.createDataFrame(\n",
|
||||
" columns = ['VAX_TYPE', 'VAX_MANU', 'VAX_LOT', 'VAX_DOSE_SERIES'],\n",
|
||||
" data = [ ['COVID19', 'MODERNA', '037K20A', '1'],\n",
|
||||
" ['COVID19', 'MODERNA', '025L20A', '1']],\n",
|
||||
" index = [\n",
|
||||
" \"0916600\",\n",
|
||||
" \"0916601\"],\n",
|
||||
" dtypes = {'VAX_DOSE_SERIES': \"string\"})\n",
|
||||
" },\n",
|
||||
" {\n",
|
||||
" 'VAERSDATA': TestHelper.createDataFrame(\n",
|
||||
" columns = ['DIED', 'L_THREAT', 'DISABLE', 'HOSPITAL', 'ER_VISIT'],\n",
|
||||
" data = [ [0, 0, 0, 0, 0],\n",
|
||||
" [0, 0, 1, 0, 0]],\n",
|
||||
" index = [\n",
|
||||
" \"1996873\",\n",
|
||||
" \"1996874\"]),\n",
|
||||
" 'VAERSVAX': TestHelper.createDataFrame(\n",
|
||||
" columns = ['VAX_TYPE', 'VAX_MANU', 'VAX_LOT', 'VAX_DOSE_SERIES'],\n",
|
||||
" data = [ ['HPV9', 'MERCK & CO. INC.', 'R017624', 'UNK'],\n",
|
||||
" ['COVID19', 'MODERNA', '025L20A', '1']],\n",
|
||||
" index = [\n",
|
||||
" \"1996873\",\n",
|
||||
" \"1996874\"],\n",
|
||||
" dtypes = {'VAX_DOSE_SERIES': \"string\"})\n",
|
||||
" }\n",
|
||||
" ])\n",
|
||||
" dataFrame = SevereColumnAdder.addSevereColumn(dataFrame)\n",
|
||||
"\n",
|
||||
" # When\n",
|
||||
" batchCodeTable = BatchCodeTableFactory.createBatchCodeTable(dataFrame, dose = '1', minADRsForLethality = 2)\n",
|
||||
"\n",
|
||||
" # Then\n",
|
||||
" batchCodeTableExpected = pd.DataFrame(\n",
|
||||
" data = {\n",
|
||||
" 'Total Number of Adverse Reaction Reports': [2, 1],\n",
|
||||
" 'Deaths': [0, 1],\n",
|
||||
" 'Disabilities': [2, 0],\n",
|
||||
" 'Life Threatening Illnesses': [0, 0],\n",
|
||||
" 'Company': ['MODERNA', 'MODERNA'],\n",
|
||||
" 'Lethality (%)': [0/2 * 100, np.nan]\n",
|
||||
" },\n",
|
||||
" index = pd.Index(['025L20A', '037K20A'], name = 'VAX_LOT'))\n",
|
||||
" assert_frame_equal(batchCodeTable, batchCodeTableExpected, check_dtype = False)\n",
|
||||
"\n",
|
||||
" def test_createBatchCodeTableFromFiles(self):\n",
|
||||
" dataFrame = VaersDescr2DataFrameConverter.createDataFrameFromDescrs(\n",
|
||||
" VaersDescrReader(dataDir = \"test/VAERS\").readAllVaersDescrs())\n",
|
||||
" DataFrameNormalizer.normalize(dataFrame)\n",
|
||||
" self._test_createBatchCodeTable(dataFrame, '1')\n",
|
||||
"\n",
|
||||
" def _test_createBatchCodeTable(self, dataFrame, dose):\n",
|
||||
" # When\n",
|
||||
" dataFrame = SevereColumnAdder.addSevereColumn(dataFrame)\n",
|
||||
"\n",
|
||||
" # When\n",
|
||||
" batchCodeTable = BatchCodeTableFactory.createBatchCodeTable(dataFrame, dose)\n",
|
||||
"\n",
|
||||
" # Then\n",
|
||||
@@ -1055,15 +1117,7 @@
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"def saveBatchCodeTable(vaers, file):\n",
|
||||
" batchCodeTable = BatchCodeTableFactory.createBatchCodeTable(vaers, dose = '1')\n",
|
||||
" batchCodeTable = batchCodeTable[\n",
|
||||
" [\n",
|
||||
" 'Total Number of Adverse Reaction Reports',\n",
|
||||
" 'Deaths',\n",
|
||||
" 'Disabilities',\n",
|
||||
" 'Life Threatening Illnesses',\n",
|
||||
" 'Company'\n",
|
||||
" ]]\n",
|
||||
" batchCodeTable = BatchCodeTableFactory.createBatchCodeTable(vaers, dose = '1', minADRsForLethality = 100)\n",
|
||||
" batchCodeTable.index.set_names(\"Batch\", inplace = True)\n",
|
||||
" display(batchCodeTable)\n",
|
||||
" IOUtils.saveDataFrame(batchCodeTable, file)"
|
||||
|
||||
Reference in New Issue
Block a user