Files
HowBadIsMyBatch/src/SummationTableFactory.py
frankknoll e87fe0c8ba refactoring
2022-11-22 12:40:26 +01:00

31 lines
1.4 KiB
Python

import pandas as pd
class SummationTableFactory:
@staticmethod
def createSummationTable(dataFrame):
summationTable = dataFrame.agg(
**{
'Deaths': pd.NamedAgg(column = 'DIED', aggfunc = 'sum'),
'Adverse Reaction Reports': pd.NamedAgg(column = 'DIED', aggfunc = 'size'),
'Life Threatening Illnesses': pd.NamedAgg(column = 'L_THREAT', aggfunc = 'sum'),
'Disabilities': pd.NamedAgg(column = 'DISABLE', aggfunc = 'sum'),
'Severities': pd.NamedAgg(column = 'SEVERE', aggfunc = 'sum'),
'Countries': pd.NamedAgg(column = 'COUNTRY', aggfunc = SummationTableFactory.countries2str)
})
summationTable['Severe reports'] = summationTable['Severities'] / summationTable['Adverse Reaction Reports'] * 100
summationTable['Lethality'] = summationTable['Deaths'] / summationTable['Adverse Reaction Reports'] * 100
return summationTable[
[
'Adverse Reaction Reports',
'Deaths',
'Disabilities',
'Life Threatening Illnesses',
'Severe reports',
'Lethality',
'Countries'
]]
@staticmethod
def countries2str(countries):
return ', '.join(sorted(set(countries)))