adding method HistogramTable2DictTableConverter.convertGlobalHistogramTable2DictTable(globalHistogramTable)

This commit is contained in:
frankknoll
2023-02-10 11:19:31 +01:00
parent 206b2a6649
commit c80d570907
2 changed files with 88 additions and 0 deletions

View File

@@ -9,6 +9,13 @@ class HistogramTable2DictTableConverter:
.reset_index(level = 'COUNTRY')
[['SYMPTOM_COUNT_BY_VAX_LOT', 'COUNTRY']])
@staticmethod
def convertGlobalHistogramTable2DictTable(globalSymptomHistogramByBatchcodeTable):
vax_lot_columns = globalSymptomHistogramByBatchcodeTable.index.names.difference(['SYMPTOM'])
return (globalSymptomHistogramByBatchcodeTable
.groupby(vax_lot_columns)
.agg(lambda histogram_with_vax_lots: HistogramTable2DictTableConverter._histogram_to_json(histogram_with_vax_lots, vax_lot_columns)))
@staticmethod
def _histogram_to_json(histogram_with_vax_lots, vax_lot_columns):
histogram = histogram_with_vax_lots.reset_index(level = vax_lot_columns, drop = True)

View File

@@ -45,3 +45,84 @@ class HistogramTable2DictTableConverterTest(unittest.TestCase):
data = ['1808982',
'EW0175'])))
def test_convertHistogramTable2DictTable2(self):
# Given
histogramTable = TestHelper.createDataFrame(
columns = ['SYMPTOM_COUNT_BY_VAX_LOT', 'COUNTRY'],
data = [ [5, 'Germany'],
[1, 'Russian Federation'],
[2, 'Russian Federation']],
index = pd.MultiIndex.from_tuples(
names = ['VAX_LOT1', 'SYMPTOM'],
tuples = [['1808982', 'Blood pressure orthostatic abnormal'],
['1808982', 'Chest discomfort'],
['EW0175', 'Chest discomfort']]))
# When
dictTable = HistogramTable2DictTableConverter.convertHistogramTable2DictTable(histogramTable)
# Then
assert_frame_equal(
dictTable,
TestHelper.createDataFrame(
columns = ['SYMPTOM_COUNT_BY_VAX_LOT', 'COUNTRY'],
data = [ [
{
"Blood pressure orthostatic abnormal": 5
},
'Germany'
],
[
{
"Chest discomfort": 1
},
'Russian Federation'
],
[
{
"Chest discomfort": 2
},
'Russian Federation'
]],
index = pd.Index(
name = 'VAX_LOT1',
data = ['1808982',
'1808982',
'EW0175'])))
def test_convertGlobalHistogramTable2DictTable(self):
# Given
globalHistogramTable = TestHelper.createDataFrame(
columns = ['SYMPTOM_COUNT_BY_VAX_LOT'],
data = [ [5],
[1],
[2]],
index = pd.MultiIndex.from_tuples(
names = ['VAX_LOT1', 'SYMPTOM'],
tuples = [['1808982', 'Blood pressure orthostatic abnormal'],
['1808982', 'Chest discomfort'],
['EW0175', 'Chest discomfort']]))
# When
dictTable = HistogramTable2DictTableConverter.convertGlobalHistogramTable2DictTable(globalHistogramTable)
# Then
assert_frame_equal(
dictTable,
TestHelper.createDataFrame(
columns = ['SYMPTOM_COUNT_BY_VAX_LOT'],
data = [ [
{
"Blood pressure orthostatic abnormal": 5,
"Chest discomfort": 1
}
],
[
{
"Chest discomfort": 2
}
]],
index = pd.Index(
name = 'VAX_LOT1',
data = ['1808982',
'EW0175'])))