From 206b2a6649aa7ebdb95938f81db53669456f4be0 Mon Sep 17 00:00:00 2001 From: frankknoll Date: Fri, 10 Feb 2023 09:52:39 +0100 Subject: [PATCH] adding method SymptomHistogramByBatchcodeTableFactory.createGlobalSymptomHistogramByBatchcodeTable() --- ...SymptomHistogramByBatchcodeTableFactory.py | 7 +++++ ...tomHistogramByBatchcodeTableFactoryTest.py | 27 +++++++++++++++++++ 2 files changed, 34 insertions(+) diff --git a/src/SymptomHistogramByBatchcodeTableFactory.py b/src/SymptomHistogramByBatchcodeTableFactory.py index 4f701179b88..4b109fe0f04 100644 --- a/src/SymptomHistogramByBatchcodeTableFactory.py +++ b/src/SymptomHistogramByBatchcodeTableFactory.py @@ -8,3 +8,10 @@ class SymptomHistogramByBatchcodeTableFactory: .to_frame(name = 'SYMPTOM_COUNT_BY_VAX_LOT') .reset_index(level = 'COUNTRY') [['SYMPTOM_COUNT_BY_VAX_LOT', 'COUNTRY']]) + + @staticmethod + def createGlobalSymptomHistogramByBatchcodeTable(symptomByBatchcodeTable): + return (symptomByBatchcodeTable + .groupby(symptomByBatchcodeTable.index.names) + ['SYMPTOM'].value_counts() + .to_frame(name = 'SYMPTOM_COUNT_BY_VAX_LOT')) diff --git a/src/SymptomHistogramByBatchcodeTableFactoryTest.py b/src/SymptomHistogramByBatchcodeTableFactoryTest.py index 62590611e73..a925952b45a 100644 --- a/src/SymptomHistogramByBatchcodeTableFactoryTest.py +++ b/src/SymptomHistogramByBatchcodeTableFactoryTest.py @@ -62,3 +62,30 @@ class SymptomHistogramByBatchcodeTableFactoryTest(unittest.TestCase): tuples = [['1808982', 'EW0175', 'Blood pressure orthostatic abnormal'], ['1808982', 'EW0175', 'Headache'], ['1808982', 'EW0175', 'Blood pressure orthostatic abnormal']]))) + + def test_createGlobalSymptomHistogramByBatchcodeTable(self): + # Given + symptomByBatchcodeTable = TestHelper.createDataFrame( + columns = ['SYMPTOM', 'COUNTRY'], + data = [ ['Blood pressure orthostatic abnormal', 'Germany'], + ['Blood pressure orthostatic abnormal', 'Germany'], + ['Blood pressure orthostatic abnormal', 'Russian Federation'], + ['Headache', 'Germany']], + index = pd.MultiIndex.from_tuples( + names = ['VAX_LOT1', 'VAX_LOT2'], + tuples = [['1808982', 'EW0175']] * 4)) + + # When + globalSymptomHistogramByBatchcodeTable = SymptomHistogramByBatchcodeTableFactory.createGlobalSymptomHistogramByBatchcodeTable(symptomByBatchcodeTable) + + # Then + assert_frame_equal( + globalSymptomHistogramByBatchcodeTable, + TestHelper.createDataFrame( + columns = ['SYMPTOM_COUNT_BY_VAX_LOT'], + data = [ [3], + [1]], + index = pd.MultiIndex.from_tuples( + names = ['VAX_LOT1', 'VAX_LOT2', 'SYMPTOM'], + tuples = [['1808982', 'EW0175', 'Blood pressure orthostatic abnormal'], + ['1808982', 'EW0175', 'Headache']])))