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

Pandas使用drop按条件删除数据报unhashable type 'list'错误如何解决

报错原因

你的代码存在两个核心错误,直接触发了该报错:

  • 语法逻辑错误:[df['CNT_CHILDREN'] > 10].index 这段代码里,你先将布尔筛选序列放进了普通Python列表中,再尝试调用index属性。Python列表本身没有index属性,同时你向drop方法传入了不可哈希的列表结构,直接触发unhashable type: 'list'报错。
  • 赋值维度错误:你尝试将drop操作返回的整个DataFrame赋值给df['CNT_CHILDREN']单列,即便删除逻辑修复,也会触发维度不匹配的报错。
修复方案

根据你的需求对应选择实现方式:

方案1:删除CNT_CHILDREN值大于10的整行数据

这是最常见的筛选需求,两种写法均可实现:

# 写法1:布尔索引直接保留符合条件的行(语法更简洁,性能更优)
df = df[df['CNT_CHILDREN'] <= 10]

# 写法2:使用drop方法删除符合条件的行
df = df.drop(df[df['CNT_CHILDREN'] > 10].index)

方案2:仅处理CNT_CHILDREN单列,清除大于10的无效值

如果不需要删除整行,仅要将该列大于10的值置为空,使用如下代码:

import pandas as pd
df.loc[df['CNT_CHILDREN'] > 10, 'CNT_CHILDREN'] = pd.NA

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 02:09:01