-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathordered_single_measurement_diffv1.py
More file actions
19 lines (15 loc) · 1.26 KB
/
Copy pathordered_single_measurement_diffv1.py
File metadata and controls
19 lines (15 loc) · 1.26 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
from typing import Any
def ordered_single_measurement_diffv1(single_person_event_order, per_person_info, vis_m7_model: Any, vis_full_model: Any, select_time_series):
selected_person_id = zz_vis_selected_person
ordered_single_person_concept_features = single_person_event_order.filter(col('domain_id')!='Measurement').drop('harmonized_value_as_number')
ordered_single_measurement = single_person_event_order.filter(col('domain_id')=='Measurement')
min_time_order = max(np.min(single_person_event_order.filter(col('date')>=F.date_sub(col('covid_index'),7)).select('time_order').toPandas().to_numpy())-1, 0).item()
event_count = single_person_event_order.count()
# code block: ordered_single_measurement_diffv1
time_order_list = [i for i in select_time_series.select('time_order').toPandas().to_numpy().flatten().tolist() if i >= min_time_order]
start_idx = time_order_list[0]
df = ordered_single_measurement.filter(col('time_order')!=start_idx).withColumn('fake_pid', lit(f'person_{start_idx}'))
for i in time_order_list[1:]:
df_tmp = ordered_single_measurement.filter(col('time_order')!=i).withColumn('fake_pid', lit(f'person_{i}'))
df = df.unionByName(df_tmp)
return df.drop('person_id').withColumnRenamed('fake_pid', 'person_id')