From 960ad9876277c78c56feba79f60699742d13ce58 Mon Sep 17 00:00:00 2001 From: Jakub Dylag <jjd1c23@soton.ac.uk> Date: Fri, 23 May 2025 10:56:54 +0100 Subject: [PATCH] phen.py separate reverse mapping merge --- acmc/phen.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/acmc/phen.py b/acmc/phen.py index 9b82186..0fb669c 100644 --- a/acmc/phen.py +++ b/acmc/phen.py @@ -705,7 +705,7 @@ def translate_codes( # otherwise do reverse mapping if enabled and it exists elif do_reverse_translate and map_path_reversed.exists(): codes = _translate_codes( - map_path_reversed, source_df, source_code_type, codes + map_path_reversed, source_df, source_code_type, codes, reverse=True ) else: _logger.warning( @@ -723,12 +723,19 @@ def translate_codes( return codes -def _translate_codes(map_path, source_df, source_code_type, codes) -> pd.DataFrame: +def _translate_codes( + map_path, source_df, source_code_type, codes, reverse=False +) -> pd.DataFrame: # get mapping df_map = pd.read_parquet(map_path) # do mapping - translated_df = pd.merge(source_df[source_code_type], df_map, how="left") + if not (reverse): + translated_df = pd.merge(source_df[source_code_type], df_map, how="left") + else: + translated_df = pd.merge( + source_df[source_code_type], df_map, how="left" + ) # output codes from target as reversed # normalise the output translated_df.columns = pd.Index(["SOURCE_CONCEPT", "CONCEPT"]) -- GitLab