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

无法按长度过滤元素为列表的Pandas Series

解决方法

你的问题出在没有对Series的每个元素单独判断长度,而是误把整个Series的长度当成判断条件了,导致生成的不是布尔索引数组,所以触发KeyError。

给你两种简单的解决方式:

方法1:用apply判断每个列表的长度

直接对Series里的每个元素(也就是每个列表)应用长度判断,生成布尔索引:

film_filtered2 = ratings_series[ratings_series.apply(lambda x: len(x) > 0)]

方法2:利用空列表的布尔特性

空列表在布尔判断中会被视为False,非空列表是True,所以可以直接转成布尔类型过滤:

film_filtered2 = ratings_series[ratings_series.astype(bool)]

如果想用loc的话,只要把判断逻辑改成针对每个元素就行:

film_filtered2 = ratings_series.loc[ratings_series.apply(lambda x: len(x) > 0)]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 00:10:29