refining CountryColumnsMergerTest

This commit is contained in:
frankknoll
2023-06-13 23:19:58 +02:00
parent 181d280a6e
commit 11b2ea4eeb
2 changed files with 57 additions and 14 deletions

View File

@@ -5,12 +5,6 @@ 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,
@@ -18,6 +12,23 @@ class CountryColumnsMerger:
left_index = True,
right_index = True,
suffixes=('_dst', '_src'))
merged['COUNTRY'] = merged.apply(merge, axis = 'columns').astype('string')
merged['COUNTRY'] = (merged
.apply(
lambda series: CountryColumnsMerger._merge(
series['COUNTRY_src'],
series['COUNTRY_dst']),
axis = 'columns')
.astype('string'))
return merged.drop(columns = ['COUNTRY_dst', 'COUNTRY_src'])
@staticmethod
def _merge(src, dst):
if (CountryColumnsMerger._isNonUnique(src, dst)) or (pd.isnull(src) and pd.isnull(dst)):
raise Exception()
return src if not pd.isnull(src) and pd.isnull(dst) else dst
@staticmethod
def _isNonUnique(src, dst):
return not pd.isnull(src) and not pd.isnull(dst) and src != dst