import math import numpy as np class BarChartDescriptionTables: @staticmethod def filter(barChartDescriptionTable, predicate): return barChartDescriptionTable[barChartDescriptionTable.apply( lambda barChartDescription: predicate( barChartDescription['BAR_CHART_DESCRIPTION']), axis='columns')] @staticmethod def isValidJensenShannonDistance(barChartDescription): jensenShannonDistance = barChartDescription['Jensen-Shannon distance'] return not math.isnan(jensenShannonDistance) @staticmethod def hasMinSizeOfGuessedHistogram(barChartDescription, minSizeOfGuessedHistogram): sizeOfGuessedHistogram = sum( barChartDescription['Adverse Reaction Reports guessed']) return sizeOfGuessedHistogram >= minSizeOfGuessedHistogram @staticmethod def hasCountryWithGuessedGreaterThanKnown(barChartDescription): guessedBarChart = barChartDescription['Adverse Reaction Reports guessed'] knownBarChart = barChartDescription['Adverse Reaction Reports known'] return np.any(np.asarray(guessedBarChart) > np.asarray(knownBarChart))