starting CountryColumnsMergerTest

This commit is contained in:
frankknoll
2023-06-13 22:15:16 +02:00
parent f92d04e87a
commit 181d280a6e
2 changed files with 76 additions and 0 deletions

View File

@@ -0,0 +1,23 @@
import pandas as pd
class CountryColumnsMerger:
@staticmethod
def mergeCountryColumnOfSrcIntoDst(src: pd.DataFrame, dst: pd.DataFrame):
def merge(series):
if pd.isnull(series['COUNTRY_dst']):
return series['COUNTRY_src']
else:
return series['COUNTRY_dst']
merged = pd.merge(
dst,
src,
how = 'left',
left_index = True,
right_index = True,
suffixes=('_dst', '_src'))
merged['COUNTRY'] = merged.apply(merge, axis = 'columns').astype('string')
return merged.drop(columns = ['COUNTRY_dst', 'COUNTRY_src'])

View File

@@ -0,0 +1,53 @@
import unittest
from TestHelper import TestHelper
from pandas.testing import assert_frame_equal
import pandas as pd
from CountryColumnsMerger import CountryColumnsMerger
class CountryColumnsMergerTest(unittest.TestCase):
def test_mergeCountryColumns(self):
# Given
unknown = TestHelper.createDataFrame(
columns = ['COUNTRY'],
data = [ ['United Kingdom'],
['France'],
[None]],
index = pd.Index(
name = 'VAERS_ID',
data = [
'4711',
'0815',
'123']),
dtypes = {'COUNTRY': 'string'})
known = TestHelper.createDataFrame(
columns = ['COUNTRY'],
data = [ ['United Kingdom'],
['Germany']],
index = pd.Index(
name = 'VAERS_ID',
data = [
'4711',
'123']),
dtypes = {'COUNTRY': 'string'})
# When
merged = CountryColumnsMerger.mergeCountryColumnOfSrcIntoDst(src = known, dst = unknown)
# Then
assert_frame_equal(
merged,
TestHelper.createDataFrame(
columns = ['COUNTRY'],
data = [ ['United Kingdom'],
['France'],
['Germany']],
index = pd.Index(
name = 'VAERS_ID',
data = [
'4711',
'0815',
'123']),
dtypes = {'COUNTRY': 'string'}))