@@ -31,39 +31,62 @@ def generate_sensor_for_states(state_groups, smooth, device, first_date, last_da
31
31
32
32
# smoothed test per device
33
33
if device & smooth :
34
- stat , se , sample_size = smoothed_tests_per_device (
35
- devices = state_group ["numUniqueDevices" ].values ,
36
- tests = state_group ['totalTest' ].values ,
37
- min_obs = MIN_OBS , max_borrow_obs = MAX_BORROW_OBS ,
38
- pool_days = POOL_DAYS )
34
+ stat , se , sample_size , missing_val , missing_se , missing_sample_size = (
35
+ smoothed_tests_per_device (
36
+ devices = state_group ["numUniqueDevices" ].values ,
37
+ tests = state_group ['totalTest' ].values ,
38
+ missing_val = state_group ['missing_val' ].values ,
39
+ missing_se = state_group ['missing_se' ].values ,
40
+ missing_sample_size = state_group ['missing_sample_size' ].values ,
41
+ min_obs = MIN_OBS , max_borrow_obs = MAX_BORROW_OBS ,
42
+ pool_days = POOL_DAYS )
43
+ )
39
44
# raw test per device
40
45
elif device & (not smooth ):
41
- stat , se , sample_size = raw_tests_per_device (
42
- devices = state_group ["numUniqueDevices" ].values ,
43
- tests = state_group ['totalTest' ].values ,
44
- min_obs = MIN_OBS )
46
+ stat , se , sample_size , missing_val , missing_se , missing_sample_size = (
47
+ raw_tests_per_device (
48
+ devices = state_group ["numUniqueDevices" ].values ,
49
+ tests = state_group ['totalTest' ].values ,
50
+ missing_val = state_group ['missing_val' ].values ,
51
+ missing_se = state_group ['missing_se' ].values ,
52
+ missing_sample_size = state_group ['missing_sample_size' ].values ,
53
+ min_obs = MIN_OBS )
54
+ )
45
55
# smoothed pct positive
46
56
elif (not device ) & smooth :
47
- stat , se , sample_size = smoothed_positive_prop (
48
- tests = state_group ['totalTest' ].values ,
49
- positives = state_group ['positiveTest' ].values ,
50
- min_obs = MIN_OBS , max_borrow_obs = MAX_BORROW_OBS ,
51
- pool_days = POOL_DAYS )
57
+ stat , se , sample_size , missing_val , missing_se , missing_sample_size = (
58
+ smoothed_positive_prop (
59
+ tests = state_group ['totalTest' ].values ,
60
+ positives = state_group ['positiveTest' ].values ,
61
+ missing_val = state_group ['missing_val' ].values ,
62
+ missing_se = state_group ['missing_se' ].values ,
63
+ missing_sample_size = state_group ['missing_sample_size' ].values ,
64
+ min_obs = MIN_OBS , max_borrow_obs = MAX_BORROW_OBS ,
65
+ pool_days = POOL_DAYS )
66
+ )
52
67
stat = stat * 100
53
68
# raw pct positive
54
69
else :
55
- stat , se , sample_size = raw_positive_prop (
56
- tests = state_group ['totalTest' ].values ,
57
- positives = state_group ['positiveTest' ].values ,
58
- min_obs = MIN_OBS )
70
+ stat , se , sample_size , missing_val , missing_se , missing_sample_size = (
71
+ raw_positive_prop (
72
+ tests = state_group ['totalTest' ].values ,
73
+ positives = state_group ['positiveTest' ].values ,
74
+ missing_val = state_group ['missing_val' ].values ,
75
+ missing_se = state_group ['missing_se' ].values ,
76
+ missing_sample_size = state_group ['missing_sample_size' ].values ,
77
+ min_obs = MIN_OBS )
78
+ )
59
79
stat = stat * 100
60
80
61
81
se = se * 100
62
82
state_df = state_df .append (pd .DataFrame ({"geo_id" : state ,
63
83
"timestamp" : state_group .index ,
64
84
"val" : stat ,
65
85
"se" : se ,
66
- "sample_size" : sample_size }))
86
+ "sample_size" : sample_size ,
87
+ "missing_val" : missing_val ,
88
+ "missing_se" : missing_se ,
89
+ "missing_sample_size" : missing_sample_size }))
67
90
return state_df
68
91
69
92
def generate_sensor_for_other_geores (state_groups , data , res_key , smooth ,
@@ -102,53 +125,86 @@ def generate_sensor_for_other_geores(state_groups, data, res_key, smooth,
102
125
if smooth :
103
126
if has_parent :
104
127
if device :
105
- stat , se , sample_size = smoothed_tests_per_device (
106
- devices = res_group ["numUniqueDevices" ].values ,
107
- tests = res_group ['totalTest' ].values ,
108
- min_obs = MIN_OBS , max_borrow_obs = MAX_BORROW_OBS ,
109
- pool_days = POOL_DAYS ,
110
- parent_devices = res_group ["numUniqueDevices_parent" ].values ,
111
- parent_tests = res_group ["totalTest_parent" ].values )
128
+ stat , se , sample_size , missing_val , missing_se , missing_sample_size = (
129
+ smoothed_tests_per_device (
130
+ devices = res_group ["numUniqueDevices" ].values ,
131
+ tests = res_group ['totalTest' ].values ,
132
+ missing_val = res_group ['missing_val' ].values ,
133
+ missing_se = res_group ['missing_se' ].values ,
134
+ missing_sample_size = res_group ['missing_sample_size' ].values ,
135
+ min_obs = MIN_OBS , max_borrow_obs = MAX_BORROW_OBS ,
136
+ pool_days = POOL_DAYS ,
137
+ parent_devices = res_group ["numUniqueDevices_parent" ].values ,
138
+ parent_tests = res_group ["totalTest_parent" ].values )
139
+ )
112
140
else :
113
- stat , se , sample_size = smoothed_positive_prop (
114
- tests = res_group ['totalTest' ].values ,
115
- positives = res_group ['positiveTest' ].values ,
116
- min_obs = MIN_OBS , max_borrow_obs = MAX_BORROW_OBS ,
117
- pool_days = POOL_DAYS ,
118
- parent_tests = res_group ["totalTest_parent" ].values ,
119
- parent_positives = res_group ['positiveTest_parent' ].values )
141
+ stat , se , sample_size , missing_val , missing_se , missing_sample_size = (
142
+ smoothed_positive_prop (
143
+ tests = res_group ['totalTest' ].values ,
144
+ positives = res_group ['positiveTest' ].values ,
145
+ missing_val = res_group ['missing_val' ].values ,
146
+ missing_se = res_group ['missing_se' ].values ,
147
+ missing_sample_size = res_group ['missing_sample_size' ].values ,
148
+ min_obs = MIN_OBS , max_borrow_obs = MAX_BORROW_OBS ,
149
+ pool_days = POOL_DAYS ,
150
+ parent_tests = res_group ["totalTest_parent" ].values ,
151
+ parent_positives = res_group ['positiveTest_parent' ].values )
152
+ )
120
153
stat = stat * 100
121
154
else :
122
155
if device :
123
- stat , se , sample_size = smoothed_tests_per_device (
124
- devices = res_group ["numUniqueDevices" ].values ,
125
- tests = res_group ['totalTest' ].values ,
126
- min_obs = MIN_OBS , max_borrow_obs = MAX_BORROW_OBS ,
127
- pool_days = POOL_DAYS )
156
+ stat , se , sample_size , missing_val , missing_se , missing_sample_size = (
157
+ smoothed_tests_per_device (
158
+ devices = res_group ["numUniqueDevices" ].values ,
159
+ tests = res_group ['totalTest' ].values ,
160
+ missing_val = res_group ['missing_val' ].values ,
161
+ missing_se = res_group ['missing_se' ].values ,
162
+ missing_sample_size = res_group ['missing_sample_size' ].values ,
163
+ min_obs = MIN_OBS , max_borrow_obs = MAX_BORROW_OBS ,
164
+ pool_days = POOL_DAYS )
165
+ )
128
166
else :
129
- stat , se , sample_size = smoothed_positive_prop (
130
- tests = res_group ['totalTest' ].values ,
131
- positives = res_group ['positiveTest' ].values ,
132
- min_obs = MIN_OBS , max_borrow_obs = MAX_BORROW_OBS ,
133
- pool_days = POOL_DAYS )
167
+ stat , se , sample_size , missing_val , missing_se , missing_sample_size = (
168
+ smoothed_positive_prop (
169
+ tests = res_group ['totalTest' ].values ,
170
+ positives = res_group ['positiveTest' ].values ,
171
+ missing_val = res_group ['missing_val' ].values ,
172
+ missing_se = res_group ['missing_se' ].values ,
173
+ missing_sample_size = res_group ['missing_sample_size' ].values ,
174
+ min_obs = MIN_OBS , max_borrow_obs = MAX_BORROW_OBS ,
175
+ pool_days = POOL_DAYS )
176
+ )
134
177
stat = stat * 100
135
178
else :
136
179
if device :
137
- stat , se , sample_size = raw_tests_per_device (
138
- devices = res_group ["numUniqueDevices" ].values ,
139
- tests = res_group ['totalTest' ].values ,
140
- min_obs = MIN_OBS )
180
+ stat , se , sample_size , missing_val , missing_se , missing_sample_size = (
181
+ raw_tests_per_device (
182
+ devices = res_group ["numUniqueDevices" ].values ,
183
+ tests = res_group ['totalTest' ].values ,
184
+ missing_val = res_group ['missing_val' ].values ,
185
+ missing_se = res_group ['missing_se' ].values ,
186
+ missing_sample_size = res_group ['missing_sample_size' ].values ,
187
+ min_obs = MIN_OBS )
188
+ )
141
189
else :
142
- stat , se , sample_size = raw_positive_prop (
143
- tests = res_group ['totalTest' ].values ,
144
- positives = res_group ['positiveTest' ].values ,
145
- min_obs = MIN_OBS )
190
+ stat , se , sample_size , missing_val , missing_se , missing_sample_size = (
191
+ raw_positive_prop (
192
+ tests = res_group ['totalTest' ].values ,
193
+ positives = res_group ['positiveTest' ].values ,
194
+ missing_val = res_group ['missing_val' ].values ,
195
+ missing_se = res_group ['missing_se' ].values ,
196
+ missing_sample_size = res_group ['missing_sample_size' ].values ,
197
+ min_obs = MIN_OBS )
198
+ )
146
199
stat = stat * 100
147
200
148
201
se = se * 100
149
202
res_df = res_df .append (pd .DataFrame ({"geo_id" : loc ,
150
203
"timestamp" : res_group .index ,
151
204
"val" : stat ,
152
205
"se" : se ,
153
- "sample_size" : sample_size }))
206
+ "sample_size" : sample_size ,
207
+ "missing_val" : missing_val ,
208
+ "missing_se" : missing_se ,
209
+ "missing_sample_size" : missing_sample_size }))
154
210
return res_df
0 commit comments