From 86e52c6844ee853899368208223afea16287310e Mon Sep 17 00:00:00 2001 From: Filipp Shpomer Date: Tue, 23 Jun 2026 12:23:22 -0700 Subject: [PATCH] fix: normalize null types in QNAM columns after supp merge The supp pivot uses pd.NA for empty cells, but the left join produces NaN for unmatched rows. On pandas 3.0 with nullable dtypes this creates mixed null types in the same column (NaN vs pd.NA), which fails strict equality checks. Normalizing with fillna(pd.NA) after the merge makes null representation consistent. --- cdisc_rules_engine/utilities/data_processor.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/cdisc_rules_engine/utilities/data_processor.py b/cdisc_rules_engine/utilities/data_processor.py index 18cdcb99e..c7c846bd0 100644 --- a/cdisc_rules_engine/utilities/data_processor.py +++ b/cdisc_rules_engine/utilities/data_processor.py @@ -269,6 +269,9 @@ def merge_pivot_supp_dataset( ) ) DataProcessor._validate_qnam(left_dataset.data, qnam_list, common_keys) + for qnam in qnam_list: + if qnam in left_dataset.columns: + left_dataset.data[qnam] = left_dataset.data[qnam].fillna(pd.NA) if not is_blank: left_dataset[dynamic_key] = left_dataset[temp_key] left_dataset = left_dataset.drop(columns=[temp_key])