adding VaccineDistributionByZipcodeSimplifier

This commit is contained in:
frankknoll
2023-03-09 20:38:17 +01:00
parent b089ca98f3
commit 483e64ef43
5 changed files with 62 additions and 3 deletions

File diff suppressed because one or more lines are too long

View File

@@ -4,5 +4,5 @@ import pandas as pd
class TestHelper:
@staticmethod
def createDataFrame(index, columns, data, dtypes={}):
return pd.DataFrame(index=index, columns=columns, data=data).astype(dtypes)
def createDataFrame(columns, data, dtypes={}, **kwargs):
return pd.DataFrame(columns=columns, data=data, **kwargs).astype(dtypes)

View File

@@ -14,6 +14,27 @@
"vaccineDistributionByZipcode"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"from VaccineDistributionByZipcodeSimplifier import VaccineDistributionByZipcodeSimplifier\n",
"\n",
"vaccineDistributionByZipcode = VaccineDistributionByZipcodeSimplifier.sumDoses(vaccineDistributionByZipcode)\n",
"vaccineDistributionByZipcode"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"vaccineDistributionByZipcode.to_excel('tmp/Amended-22-01962-Pfizer-2022-0426-pulled-2022-0823_sumDoses.xlsx')"
]
},
{
"cell_type": "code",
"execution_count": null,

View File

@@ -0,0 +1,10 @@
import pandas as pd
class VaccineDistributionByZipcodeSimplifier:
@staticmethod
def sumDoses(vaccineDistributionByZipcode):
return (vaccineDistributionByZipcode
.groupby(['PROVIDER_NAME', 'ZIPCODE_SHP', 'LOT_NUMBER'])
.agg(DOSES_SHIPPED = pd.NamedAgg(column = 'DOSES_SHIPPED', aggfunc = 'sum'))
.reset_index())

View File

@@ -0,0 +1,28 @@
import unittest
from VaccineDistributionByZipcodeSimplifier import VaccineDistributionByZipcodeSimplifier
from TestHelper import TestHelper
from pandas.testing import assert_frame_equal
import pandas as pd
class VaccineDistributionByZipcodeSimplifierTest(unittest.TestCase):
def test_sumDoses(self):
# Given
vaccineDistributionByZipcode = TestHelper.createDataFrame(
columns = ['PROVIDER_NAME', 'ZIPCODE_SHP', 'LOT_NUMBER', 'DOSES_SHIPPED'],
data = [ ['@PHARMACY.COM', '97206-2314', 'FK9893', 300.0],
['@PHARMACY.COM - 82ND AVE', '97266-4885', 'FK9893', 300.0],
['@PHARMACY.COM - 82ND AVE', '97266-4885', 'FK9893', 400.0],
['@PHARMACY.COM - 82ND AVE', '97266-4885', 'FL8095', 200.0]])
# When
vaccineDistributionByZipcodeSimplified = VaccineDistributionByZipcodeSimplifier.sumDoses(vaccineDistributionByZipcode)
# Then
assert_frame_equal(
vaccineDistributionByZipcodeSimplified,
TestHelper.createDataFrame(
columns = ['PROVIDER_NAME', 'ZIPCODE_SHP', 'LOT_NUMBER', 'DOSES_SHIPPED'],
data = [ ['@PHARMACY.COM', '97206-2314', 'FK9893', 300.0],
['@PHARMACY.COM - 82ND AVE', '97266-4885', 'FK9893', 700.0],
['@PHARMACY.COM - 82ND AVE', '97266-4885', 'FL8095', 200.0]]))