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: class CountriesMerger:
@staticmethod @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 return (pd
.merge(countriesSeriesA, countriesSeriesB, how='left', left_index=True, right_index=True) .merge(dst, src, how='left', left_index=True, right_index=True)
.apply(lambda countries: sorted(set(countries.dropna())), axis='columns')) .apply(merge, axis='columns'))

View File

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