You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在pandas中基于datetime64类型列筛选分钟和秒均为0的行

正确筛选方法

直接使用pandas datetime列的内置属性做向量化筛选即可,代码如下:

heart_rate_hourly = heart_rate_seconds[(heart_rate_seconds['time'].dt.minute == 0) & (heart_rate_seconds['time'].dt.second == 0)]

报错原因说明

  1. TypeError: 'Series' object is not callable报错
    heart_rate_seconds['time'].dt.second是pandas封装的属性,不是可调用的方法,不需要加括号执行,加括号会触发该报错。
  2. ValueError: The truth value of a Series is ambiguous报错
    pandas布尔索引中不能使用Python原生的and/or做多条件逻辑判断,需要使用按位运算符&(与)/|(或),同时每个判断条件必须用括号包裹,避免运算符优先级导致的逻辑错误。另外strftime("%M")返回的是字符串类型的分钟值,和整数0判断相等永远不成立。
  3. 遍历DataFrame的AttributeError报错
    直接遍历heart_rate_seconds默认遍历的是DataFrame的列名(字符串类型),不是每行数据,自然不存在second属性。如果要逐行遍历需要用.iterrows()方法,但逐行遍历效率远低于向量化筛选,不推荐使用。

内容的提问来源于stack exchange,提问作者Martin Wickett

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 04:15:01