Python Pandas如何删除与下一行日期间隔小于1分钟的前一行数据
实现方法
- 先确保
Date列为datetime类型,如果是字符串可先执行转换:df['Date'] = pd.to_datetime(df['Date']) - 计算每行与下一行的时间差,转换为秒单位方便判断:
df['time_diff'] = (df['Date'].shift(-1) - df['Date']).dt.total_seconds() - 过滤保留符合要求的行:当前行与下一行间隔大于60秒,或为最后一行(无下一行默认保留),同时删除辅助计算列得到最终结果:
res_df = df[(df['time_diff'] > 60) | df['time_diff'].isna()].drop(columns='time_diff')
运行后输出的res_df就和你期望的结果完全一致:
Date Value 1 2005-02-25 01:31:10 4 2 2005-02-25 02:36:10 6 4 2005-02-25 02:45:50 3 6 2005-02-25 03:55:10 7 7 2005-02-25 05:30:10 8 9 2005-02-25 06:30:30 2
内容的提问来源于stack exchange,提问作者user3234242
相关产品推荐
相关产品推荐

