Update fitbit_parse_steps.py: add summary data
parent
2489f70ea7
commit
84068ab33c
|
@ -4,6 +4,11 @@ import numpy as np
|
||||||
from datetime import datetime, timezone
|
from datetime import datetime, timezone
|
||||||
from math import trunc
|
from math import trunc
|
||||||
|
|
||||||
|
STEPS_SUMMARY_COLUMNS = ("device_id",
|
||||||
|
"steps_rapids_intradaycountallsteps",
|
||||||
|
"local_date_time",
|
||||||
|
"timestamp")
|
||||||
|
|
||||||
STEPS_INTRADAY_COLUMNS = ("device_id",
|
STEPS_INTRADAY_COLUMNS = ("device_id",
|
||||||
"steps",
|
"steps",
|
||||||
"local_date_time",
|
"local_date_time",
|
||||||
|
@ -14,12 +19,23 @@ def parseStepsData(steps_data):
|
||||||
if steps_data.empty:
|
if steps_data.empty:
|
||||||
return pd.DataFrame(), pd.DataFrame(columns=STEPS_INTRADAY_COLUMNS)
|
return pd.DataFrame(), pd.DataFrame(columns=STEPS_INTRADAY_COLUMNS)
|
||||||
device_id = steps_data["device_id"].iloc[0]
|
device_id = steps_data["device_id"].iloc[0]
|
||||||
records_intraday = []
|
records_summary, records_intraday = [], []
|
||||||
# Parse JSON into individual records
|
# Parse JSON into individual records
|
||||||
for record in steps_data.fitbit_data:
|
for record in steps_data.fitbit_data:
|
||||||
record = json.loads(record) # Parse text into JSON
|
record = json.loads(record) # Parse text into JSON
|
||||||
|
|
||||||
|
# Parse summary data
|
||||||
curr_date = datetime.strptime(
|
curr_date = datetime.strptime(
|
||||||
record["activities-steps"][0]["dateTime"], "%Y-%m-%d")
|
record["activities-steps"][0]["dateTime"], "%Y-%m-%d")
|
||||||
|
|
||||||
|
row_summary = (device_id,
|
||||||
|
record["activities-steps"][0]["value"],
|
||||||
|
curr_date,
|
||||||
|
0)
|
||||||
|
|
||||||
|
records_summary.append(row_summary)
|
||||||
|
|
||||||
|
# Parse intraday data
|
||||||
dataset = record["activities-steps-intraday"]["dataset"]
|
dataset = record["activities-steps-intraday"]["dataset"]
|
||||||
for data in dataset:
|
for data in dataset:
|
||||||
d_time = datetime.strptime(data["time"], '%H:%M:%S').time()
|
d_time = datetime.strptime(data["time"], '%H:%M:%S').time()
|
||||||
|
@ -32,7 +48,7 @@ def parseStepsData(steps_data):
|
||||||
|
|
||||||
records_intraday.append(row_intraday)
|
records_intraday.append(row_intraday)
|
||||||
|
|
||||||
return pd.DataFrame(data=[], columns=["local_date_time", "timestamp"]), pd.DataFrame(data=records_intraday, columns=STEPS_INTRADAY_COLUMNS)
|
return pd.DataFrame(data=records_summary, columns=STEPS_SUMMARY_COLUMNS), pd.DataFrame(data=records_intraday, columns=STEPS_INTRADAY_COLUMNS)
|
||||||
|
|
||||||
table_format = snakemake.params["table_format"]
|
table_format = snakemake.params["table_format"]
|
||||||
timezone = snakemake.params["timezone"]
|
timezone = snakemake.params["timezone"]
|
||||||
|
|
Loading…
Reference in New Issue