refactoring

This commit is contained in:
frankknoll
2023-03-31 12:17:02 +02:00
parent 70e5688be3
commit 0fa873e461
2 changed files with 10 additions and 7 deletions

View File

@@ -4,7 +4,10 @@ import pandas as pd
class CountriesMerger:
@staticmethod
def mergeCountriesSerieses(countriesSeriesA, countriesSeriesB):
def mergeSrcIntoDst(src: pd.Series, dst: pd.Series):
def merge(series):
series = series.dropna()
return sorted(series[0].union(series[1:]))
return (pd
.merge(countriesSeriesA, countriesSeriesB, how='left', left_index=True, right_index=True)
.apply(lambda countries: sorted(set(countries.dropna())), axis='columns'))
.merge(dst, src, how='left', left_index=True, right_index=True)
.apply(merge, axis='columns'))

View File

@@ -6,13 +6,13 @@ from pandas.testing import assert_series_equal
class CountriesMergerTest(unittest.TestCase):
def test_mergeCountriesSerieses(self):
def test_mergeSrcIntoDst(self):
# Given
countriesSeriesA = pd.Series({'NO72A': 'CountryA-1', 'EW096': 'CountryA-2'}, name='countriesSeriesA')
countriesSeriesB = pd.Series({'NO72A': 'CountryB-1', 'FS192': 'CountryB-2'}, name='countriesSeriesB')
dstCountries = pd.Series({'NO72A': {'CountryA-1'}, 'EW096': {'CountryA-2'}}, name='dstCountries')
srcCountries = pd.Series({'NO72A': 'CountryB-1', 'FS192': 'CountryB-2'}, name='srcCountries')
# When
mergedCountries = CountriesMerger.mergeCountriesSerieses(countriesSeriesA, countriesSeriesB)
mergedCountries = CountriesMerger.mergeSrcIntoDst(src = srcCountries, dst = dstCountries)
# Then
assert_series_equal(