31 lines
819 B
Python
31 lines
819 B
Python
import pandas as pd
|
|
|
|
|
|
def compute_overall_stats(df: pd.DataFrame) -> dict:
|
|
s = df["speed"]
|
|
return {
|
|
"min_speed": s.min(),
|
|
"max_speed": s.max(),
|
|
"mean_speed": s.mean(),
|
|
"std_speed": s.std(ddof=1),
|
|
"count": len(df),
|
|
}
|
|
|
|
|
|
def compute_group_stats(groups: list) -> list:
|
|
result = []
|
|
for i, g in enumerate(groups):
|
|
s = g["speed"]
|
|
std = s.std(ddof=1) if len(g) > 1 else None
|
|
result.append({
|
|
"group_index": i + 1,
|
|
"count": len(g),
|
|
"min_speed": s.min(),
|
|
"max_speed": s.max(),
|
|
"mean_speed": s.mean(),
|
|
"std_speed": std,
|
|
"time_start": g["time"].min().strftime("%H:%M:%S"),
|
|
"time_end": g["time"].max().strftime("%H:%M:%S"),
|
|
})
|
|
return result
|