如何检查DataFrame中的datetime列是否为15分钟间隔?
检查DataFrame datetime列的分钟值是否为00/15/30/45
pandas没有专门的单一内置方法直接完成这个检查,但可以通过内置的datetime访问器+Series方法组合实现,这是最简洁高效的方式:
- 用
df['dt'].dt.minute提取datetime列的分钟值(这是pandas针对datetime类型列的内置属性) - 用
isin([0, 15, 30, 45])判断每个分钟值是否在目标集合中,得到布尔型Series - 用
all()验证所有行是否都符合要求
代码示例
# 生成布尔掩码,标记符合条件的行 valid_mask = df['dt'].dt.minute.isin([0, 15, 30, 45]) # 检查所有行是否都满足条件 all_rows_valid = valid_mask.all() print(all_rows_valid) # True表示全部符合,False表示存在不符合的行 # 若要查看不符合条件的行 invalid_entries = df[~valid_mask] print(invalid_entries)
这种方式完全利用pandas内置功能,无需自定义函数,执行效率高,适合处理大规模数据集。
内容的提问来源于stack exchange,提问作者h8n2
相关产品推荐
相关产品推荐

