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

如何删除Pandas DataFrame列表类型列中的所有指定值

报错原因

你触发AttributeError: 'Series' object has no attribute 'remove'的核心原因是:remove()是Python原生列表的实例方法,pandas的Series(也就是你取的df['organizations'])对象本身没有这个方法,不能直接对整列对象调用,必须逐行处理每个单元格内存储的列表。
另外补充:就算是对单个列表用remove(),它也只会删除第一个匹配到的'United States',如果某个单元格的列表里存在多个'United States'项,单次调用无法删干净。

大型数据集最优实现方式

优先用列表推导式处理,比apply方法性能高30%以上,适合十万、百万级的大表:

# 注意确认列名大小写,你之前代码写的organizations首字母小写,和示例列名Organizations不匹配,后续可能触发KeyError
df['Organizations'] = [
    [item for item in org_cell if item != 'United States']
    for org_cell in df['Organizations']
]

代码逻辑很直接:遍历Organizations列的每一个单元格(每个单元格是一个列表),再遍历列表内的元素,只保留不等于'United States'的项,重新组装成列表后赋值回原列,不管单个列表里有多少个'United States'都能全部清除。

其他可选写法

如果你的表数据量不大,也可以用apply写法,逻辑和上面完全一致,只是性能稍差:

df['Organizations'] = df['Organizations'].apply(
    lambda cell: [i for i in cell if i != 'United States']
)

处理完成后打印df即可得到预期结果:

  • ID为1的行,Organizations列值为['education', 'health', 'facebook']
  • ID为2的行,Organizations列值为['health', 'Airlines', 'WHO']

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 03:06:42