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

pandas DataFrame datetime索引下删除特定分钟行报语法错误如何解决

语法错误原因

你的代码存在多处语法和逻辑错误,导致触发invalid syntax报错,具体错误如下:

  • 缩进错误:Python强制要求函数、循环、条件判断的代码块统一缩进4个空格,你定义clean函数后,内部的循环、判断代码都没有做缩进,不符合语法规则。
  • if语句语法错误:if关键字后需要跟随布尔判断表达式,你写的if df5 = df5[(df5.index.minute ==5) | ...]是赋值操作,不属于判断逻辑,且该行末尾缺少必要的冒号:。
  • 变量名不匹配:你定义的函数参数是df5,但调用drop方法时写的是df.drop,变量名不存在。
  • 逻辑错误:即使修复语法问题,边遍历DataFrame边删除行的操作会导致索引动态偏移,出现删错行、漏删的问题,完全不推荐用循环实现该需求。
解决方法

你完全不需要额外提取时间维度字段,也不需要写循环遍历,Pandas支持向量化操作直接过滤数据,一行代码即可完成需求:

# 直接过滤掉分钟为5、10、20的行,生成新的清洗后DataFrame
df_cleaned = df5[~df5.index.minute.isin([5, 10, 20])]

如果需要封装为函数,正确写法如下:

def clean(df):
    # 入参为待清洗的datetime索引DataFrame,返回清洗后的结果
    return df[~df.index.minute.isin([5, 10, 20])]

# 调用函数
df5 = clean(df5)

以上代码效率远高于循环遍历,也不会出现索引错位的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 09:57:03