9
9
from typing import Dict , Any
10
10
11
11
import numpy as np
12
- from delphi_utils import S3ArchiveDiffer , get_structured_logger
12
+ from delphi_utils import S3ArchiveDiffer , get_structured_logger , Nans
13
13
14
14
from .archive_diffs import arch_diffs
15
15
from .constants import (METRICS , SENSOR_NAME_MAP ,
18
18
from .pull import pull_nchs_mortality_data
19
19
20
20
21
+ def add_nancodes (df ):
22
+ """Add nancodes to the dataframe."""
23
+ # Default missingness codes
24
+ df ["missing_val" ] = Nans .NOT_MISSING
25
+ df ["missing_se" ] = Nans .NOT_APPLICABLE
26
+ df ["missing_sample_size" ] = Nans .NOT_APPLICABLE
27
+
28
+ # Mark any remaining nans with unknown
29
+ remaining_nans_mask = df ["val" ].isnull ()
30
+ df .loc [remaining_nans_mask , "missing_val" ] = Nans .UNKNOWN
31
+ return df
32
+
21
33
def run_module (params : Dict [str , Any ]):
22
34
"""Run module for processing NCHS mortality data.
23
35
@@ -67,7 +79,8 @@ def run_module(params: Dict[str, Any]):
67
79
df ["val" ] = df [metric ]
68
80
df ["se" ] = np .nan
69
81
df ["sample_size" ] = np .nan
70
- df = df [~ df ["val" ].isnull ()]
82
+ df = add_nancodes (df )
83
+ # df = df[~df["val"].isnull()]
71
84
sensor_name = "_" .join ([SENSOR_NAME_MAP [metric ]])
72
85
export_csv (
73
86
df ,
@@ -86,7 +99,8 @@ def run_module(params: Dict[str, Any]):
86
99
df ["val" ] = df [metric ] / df ["population" ] * INCIDENCE_BASE
87
100
df ["se" ] = np .nan
88
101
df ["sample_size" ] = np .nan
89
- df = df [~ df ["val" ].isnull ()]
102
+ df = add_nancodes (df )
103
+ # df = df[~df["val"].isnull()]
90
104
sensor_name = "_" .join ([SENSOR_NAME_MAP [metric ], sensor ])
91
105
export_csv (
92
106
df ,
0 commit comments