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

pandas列表列统计元素个数结果不符合预期的问题排查

问题原因排查

1. lambda逻辑本身存在错误

你写的判断逻辑和预期完全不符:
如果x是真·空列表[],not x结果为True,代码会返回len([])-1 = -1,和你要的0的结果完全相悖。基础逻辑应该修改为空列表返回0,非空返回长度:

lambda x: 0 if not x else len(x)

2. 你列中的“空列表”并非Python原生空列表

你当前空行输出为1,说明这些行的x布尔值为真(not x为False),走了else分支返回len(x)=1,最常见的场景是:
该列由字符串分割生成,比如用str.split()处理空字符串时,返回的是[''](包含1个空字符串的列表),而非你以为的空列表[]。

你可以先执行以下代码确认元素的真实类型和值:

# 查看前5行元素类型
print(dftouse['col a'].apply(type).head())
# 查看第一行的真实值
print(dftouse['col a'].iloc[0])

修复方案

如果确认是分割产生的['']假空值,用以下代码统计即可:

dftouse['count'] = dftouse['col a'].apply(lambda x: 0 if x == [''] else len(x))

如果是其他类型的假空值,根据实际返回的x值调整判断条件即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 15:45:01