如何按0/15/30/45分钟间隔过滤DataFrame的datetime列?
解决方法
你可以直接通过提取datetime列的分钟数来筛选符合条件的记录,有两种简洁的实现方式:
方法一:使用isin匹配目标分钟数
假设你的datetime列名为timestamp,直接判断分钟数是否在[0,15,30,45]列表中:
filtered_df = df[df['timestamp'].dt.minute.isin([0, 15, 30, 45])]
方法二:使用模运算简化判断
因为目标分钟数都是15的倍数,用分钟数对15取模,结果为0的就是符合要求的记录:
filtered_df = df[df['timestamp'].dt.minute % 15 == 0]
关于pd.date_range的说明
你之前看到的pd.date_range(start, freq='15T', periods=len(df))是用来生成连续的15分钟间隔时间序列的,一般用于创建时间索引或者对齐数据,和你从已有数据中筛选特定分钟记录的需求不匹配,所以不适用。
内容的提问来源于stack exchange,提问作者rish
相关产品推荐
相关产品推荐

