基于Pandas按日期统计功率阈值对应的连续区间块计数
按日期统计功率阈值区间块的实现方案
基于你已过滤好的数据集(功率>280、总里程20km且timestamp连续间隔1秒),可以通过以下步骤生成interval_count列,实现按日期统计连续timestamp的区间块:
代码实现
# 标记每个日期内的新区间起始行 df['is_new_interval'] = df.groupby('datum')['diff'].apply(lambda x: x != 1).fillna(True) # 按日期累计区间计数,切换日期后重置 df['interval_count'] = df.groupby('datum')['is_new_interval'].cumsum()
步骤说明
- 标记新区间:按
datum(日期)分组后,判断当前行的时间差diff是否不等于1(即timestamp断开),同时将每组的第一行(diff为NaN)标记为新区间起始(fillna(True))。 - 生成区间计数:在每个日期分组内,对
is_new_interval的布尔值做累加,每遇到一个新区间起始,计数自动加1;切换到新日期时,分组重置,计数从1重新开始。
验证结果
可以通过以下代码查看每个日期的区间块数量:
# 输出每个日期对应的区间块总数 print(df.groupby('datum')['interval_count'].nunique())
内容的提问来源于stack exchange,提问作者pepijn
相关产品推荐
相关产品推荐

