Files
HowBadIsMyBatch/src/BatchCodeTableIntoHistogramDescriptionTableMerger.py
frankknoll bf282e4dac refactoring
2023-04-13 00:47:09 +02:00

49 lines
1.9 KiB
Python

import pandas as pd
from Utils import get_dictWithKeys_dictWithoutKeys
class BatchCodeTableIntoHistogramDescriptionTableMerger:
def __init__(self):
self.HISTOGRAM_DESCRIPTION_columnName = 'HISTOGRAM_DESCRIPTION'
def mergeBatchCodeTableIntoHistogramDescriptionTable(self, batchCodeTable, histogramDescriptionTable):
mergedTable = self._combineTables(batchCodeTable, histogramDescriptionTable)
mergedTable = self._merge_columns_into_HISTOGRAM_DESCRIPTION(mergedTable)
mergedTable['COUNTRY'] = histogramDescriptionTable['COUNTRY']
return mergedTable
def _combineTables(self, batchCodeTable, histogramDescriptionTable):
mergedTable = pd.merge(
histogramDescriptionTable,
batchCodeTable,
how='left',
left_index=True,
right_index=True,
validate='one_to_one')
return mergedTable[
[
self.HISTOGRAM_DESCRIPTION_columnName,
'Adverse Reaction Reports',
'Deaths',
'Disabilities',
'Life Threatening Illnesses',
'Company',
'Severe reports',
'Lethality'
]]
def _merge_columns_into_HISTOGRAM_DESCRIPTION(self, table):
table = table.apply(
self.__merge_columns_into_HISTOGRAM_DESCRIPTION,
axis='columns')
table.name = self.HISTOGRAM_DESCRIPTION_columnName
return table.to_frame()
def __merge_columns_into_HISTOGRAM_DESCRIPTION(self, src):
dict_with_HISTOGRAM_DESCRIPTION, dict_without_HISTOGRAM_DESCRIPTION = get_dictWithKeys_dictWithoutKeys(
src.to_dict(),
{self.HISTOGRAM_DESCRIPTION_columnName})
HISTOGRAM_DESCRIPTION = dict_with_HISTOGRAM_DESCRIPTION[self.HISTOGRAM_DESCRIPTION_columnName]
return {**HISTOGRAM_DESCRIPTION, **dict_without_HISTOGRAM_DESCRIPTION}