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

如何从存储列表的pandas Series中移除所有0元素

移除Pandas列表列中的0值

直接通过列表推导式遍历目标列的每个列表,过滤掉值为0的元素即可,这种写法执行效率最高。

首先复现测试数据:

import pandas as pd

df = pd.DataFrame({
                   'id': [0, 1],
                   'vl': [ [1, 0, 2], [0, 1, 5] ]
                 })

执行过滤代码:

df['vl'] = [[item for item in sub_list if item != 0] for sub_list in df['vl']]

处理后打印df就能得到期望的输出:

id       vl
0   0   [1, 2]
1   1   [1, 5]

如果你习惯用apply写法,也可以用下面的代码,效果完全一致,只是数据量大的时候性能比列表推导式稍差:

df['vl'] = df['vl'].apply(lambda sub_list: [item for item in sub_list if item != 0])

说明:上述两种写法都会移除对应列表中所有等于0的元素,无论列表中是否存在0都可以正常执行,不会抛出异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 09:24:14