diff --git a/src/JensenShannonDistance2BarChartDescriptionColumnAdder.py b/src/JensenShannonDistance2BarChartDescriptionColumnAdder.py new file mode 100644 index 00000000000..3ca42b17bd6 --- /dev/null +++ b/src/JensenShannonDistance2BarChartDescriptionColumnAdder.py @@ -0,0 +1,19 @@ +from scipy.spatial import distance + + +class JensenShannonDistance2BarChartDescriptionColumnAdder: + + @staticmethod + def addJensenShannonDistance2BarChartDescriptionColumn(barChartDescriptionTable): + barChartDescriptionTable['BAR_CHART_DESCRIPTION'] = ( + barChartDescriptionTable.apply( + lambda barChartDescription: + { + **barChartDescription['BAR_CHART_DESCRIPTION'], + 'Jensen-Shannon distance': distance.jensenshannon( + barChartDescription['BAR_CHART_DESCRIPTION']['Adverse Reaction Reports guessed'], + barChartDescription['BAR_CHART_DESCRIPTION']['Adverse Reaction Reports known'], + base=2.0) + }, + axis='columns')) + return barChartDescriptionTable diff --git a/src/JensenShannonDistanceColumnAdderTest.py b/src/JensenShannonDistance2BarChartDescriptionColumnAdderTest.py similarity index 72% rename from src/JensenShannonDistanceColumnAdderTest.py rename to src/JensenShannonDistance2BarChartDescriptionColumnAdderTest.py index b9f3793eb8a..62a9b5dd13c 100644 --- a/src/JensenShannonDistanceColumnAdderTest.py +++ b/src/JensenShannonDistance2BarChartDescriptionColumnAdderTest.py @@ -2,12 +2,12 @@ import unittest import pandas as pd from pandas.testing import assert_frame_equal from TestHelper import TestHelper -from JensenShannonDistanceColumnAdder import JensenShannonDistanceColumnAdder +from JensenShannonDistance2BarChartDescriptionColumnAdder import JensenShannonDistance2BarChartDescriptionColumnAdder from scipy.spatial import distance -class JensenShannonDistanceColumnAdderTest(unittest.TestCase): +class JensenShannonDistance2BarChartDescriptionColumnAdderTest(unittest.TestCase): - def test_addJensenShannonDistanceColumn(self): + def test_addJensenShannonDistance2BarChartDescriptionColumn(self): # Given barChartDescriptionTable = TestHelper.createDataFrame( columns = ['BAR_CHART_DESCRIPTION'], @@ -27,21 +27,21 @@ class JensenShannonDistanceColumnAdderTest(unittest.TestCase): name = 'VAX_LOT')) # When - barChartDescriptionTableWithJensenShannonDistanceColumn = JensenShannonDistanceColumnAdder.addJensenShannonDistanceColumn(barChartDescriptionTable) + barChartDescriptionTableWithJensenShannonDistanceColumn = JensenShannonDistance2BarChartDescriptionColumnAdder.addJensenShannonDistance2BarChartDescriptionColumn(barChartDescriptionTable) # Then assert_frame_equal( barChartDescriptionTableWithJensenShannonDistanceColumn, TestHelper.createDataFrame( - columns = ['BAR_CHART_DESCRIPTION', 'JENSEN_SHANNON_DISTANCE'], + columns = ['BAR_CHART_DESCRIPTION'], data = [ [ { 'countries': ['Germany', 'Hungary'], 'Adverse Reaction Reports guessed': [10, 15], - 'Adverse Reaction Reports known': [20, 30] - }, - distance.jensenshannon([10, 15], [20, 30], base = 2.0) + 'Adverse Reaction Reports known': [20, 30], + 'Jensen-Shannon distance': distance.jensenshannon([10, 15], [20, 30], base = 2.0) + } ] ], index = pd.Index( diff --git a/src/JensenShannonDistanceColumnAdder.py b/src/JensenShannonDistanceColumnAdder.py deleted file mode 100644 index 7fc9d6c5bb3..00000000000 --- a/src/JensenShannonDistanceColumnAdder.py +++ /dev/null @@ -1,15 +0,0 @@ -from scipy.spatial import distance - - -class JensenShannonDistanceColumnAdder: - - @staticmethod - def addJensenShannonDistanceColumn(barChartDescriptionTable): - barChartDescriptionTable['JENSEN_SHANNON_DISTANCE'] = ( - barChartDescriptionTable.apply( - lambda barChartDescription: distance.jensenshannon( - barChartDescription['BAR_CHART_DESCRIPTION']['Adverse Reaction Reports guessed'], - barChartDescription['BAR_CHART_DESCRIPTION']['Adverse Reaction Reports known'], - base=2.0), - axis = 'columns')) - return barChartDescriptionTable