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

在Pandas中删除DataFrame指定行时出现异常问题求助

解决DataFrame删除指定行后为空的问题

问题原因分析

你当前代码的核心问题有两个:

  1. drop方法参数使用错误:你传入了整个routine_tasks DataFrame给drop,并且设置axis=1(删除列),这会让drop尝试删除routine_tasks包含的所有列,最终导致整个DataFrame被清空。
  2. 拼写错误:代码中Category筛选条件里的Maintaince是拼写错误,正确应为Maintenance,这可能导致你筛选出的routine_tasks不符合预期。

正确解决方案

方案1:通过索引删除目标行

先筛选出目标行,再提取其索引传入drop方法(axis=0表示删除行,可省略,因为默认值就是0):

# 修正拼写错误,筛选目标任务
routine_tasks = mboard.loc[(mboard['Down Date'] == '2021-06-20') & (mboard['Category'] == 'Maintenance')]
# 通过索引删除对应行
Down = mboard.drop(routine_tasks.index)

方案2:直接反选保留所需行(更高效)

不需要先筛选出要删除的行,直接通过布尔索引反选保留其他数据:

Down = mboard[~((mboard['Down Date'] == '2021-06-20') & (mboard['Category'] == 'Maintenance'))]

方案3:使用query方法(代码更简洁)

如果喜欢更简洁的语法,可以用query实现:

Down = mboard.query("`Down Date` != '2021-06-20' or Category != 'Maintenance'")

补充说明

如果Down Date列的数据类型是datetime而非字符串,需要先转换后再筛选:

import pandas as pd
mboard['Down Date'] = pd.to_datetime(mboard['Down Date'])
routine_tasks = mboard.loc[(mboard['Down Date'] == pd.to_datetime('2021-06-20')) & (mboard['Category'] == 'Maintenance')]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 06:35:29