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

Pandas中无法删除指定行的问题求助(标题列为索引)

解决Pandas DataFrame删除指定行的问题

我看你已经把title列设为DataFrame的索引了,这也是之前你尝试的几种方法没生效或者报错的核心原因,咱们一步步来解决:

先分析你之前方法的问题:

  • 方法1:movies.drop(i)没生效,是因为Pandas的drop()默认返回一个新的DataFrame,不会修改原数据。要么把结果重新赋值给movies,要么加上inplace=True参数。
  • 方法2:movies.drop(0)报错,因为你已经把title设为索引了,行索引不再是默认的数字0,自然找不到这个索引。
  • 方法3:movies.drop(movies.iloc[0])报错,是因为你把整行的Series传给了drop(),它会把Series里的数值(3.4444、9.0)当作索引去查找,当然找不到,所以抛出KeyError。
  • 方法4、5:movies.drop(' ',axis=0)报错,可能是那一行的空白标题不是单个空格,而是空字符串或者其他空白形式,所以匹配不到。

两种可行的解决方案:

方案一:根据行的内容条件删除

既然你明确知道目标行的rating=3.4444且rat_count=9,可以精准定位后删除:

# 找到符合条件的行的索引
target_rows = movies[(movies['rating'] == 3.4444) & (movies['rat_count'] == 9)].index
# 删除行并覆盖原DataFrame(或者加inplace=True直接修改)
movies = movies.drop(target_rows)
# 或者用inplace=True,不需要重新赋值
# movies.drop(target_rows, inplace=True)

方案二:直接删除第一行

如果确定要删的就是第一行,不管内容,可以通过iloc获取第一行的索引(也就是它的title值)再删除:

# 获取第一行的索引(即title列的值),然后删除该行
movies = movies.drop(movies.iloc[0].name)

这样就能顺利删除你目标的那一行啦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.27 13:27:45