Prevent pandas overflow and runtime errors from division by zero/NaN (#12591)

* Prevent pandas overflow and runtime errors from division by zero/NaN

* remove pysqlite3
This commit is contained in:
Josh Hawkins 2024-07-24 09:58:42 -05:00 committed by GitHub
parent d28ad0f0c8
commit 6de426c697
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -475,7 +475,7 @@ def motion_activity():
logger.warning("No motion data found for the requested time range")
return jsonify([])
df = df.astype(dtype={"motion": "float16"})
df = df.astype(dtype={"motion": "float32"})
# set date as datetime index
df["start_time"] = pd.to_datetime(df["start_time"], unit="s")
@ -497,11 +497,13 @@ def motion_activity():
for i in range(0, length, chunk):
part = df.iloc[i : i + chunk]
min_val, max_val = part["motion"].min(), part["motion"].max()
if min_val != max_val:
df.iloc[i : i + chunk, 0] = (
(part["motion"] - part["motion"].min())
/ (part["motion"].max() - part["motion"].min())
* 100
).fillna(0.0)
part["motion"].sub(min_val).div(max_val - min_val).mul(100).fillna(0)
)
else:
df.iloc[i : i + chunk, 0] = 0.0
# change types for output
df.index = df.index.astype(int) // (10**9)