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

Python中df.apply()报AttributeError:NoneType无split属性的解决方法

解决AttributeError: 'NoneType' object has no attribute 'split'问题

方案1:修改lambda处理None值

直接在apply的lambda表达式里增加None值判断,避免调用split()方法时出错:

from datetime import datetime  # 确保导入datetime模块

start = datetime.now()

df_no_dup["tag_count"] = df_no_dup["Tags"].apply(lambda text: len(text.split(" ")) if text is not None else 0)
print("Time taken to run this cell :", datetime.now() - start)
df_no_dup.head()

方案2:使用Pandas矢量化操作(更高效)

Pandas的字符串方法支持直接处理缺失值,比apply的循环方式性能更好,推荐使用:

from datetime import datetime

start = datetime.now()

# str.split()会自动忽略NaN/None,返回空列表,str.len()计算长度为空时返回0
df_no_dup["tag_count"] = df_no_dup["Tags"].str.split(" ").str.len().fillna(0).astype(int)
print("Time taken to run this cell :", datetime.now() - start)
df_no_dup.head()

说明

  • 方案1通过显式判断text is not None,当遇到空值时直接返回0(可根据需求调整返回值,比如返回NaN)。
  • 方案2利用Pandas的矢量化字符串操作,无需手动循环,处理大数据集时速度更快,fillna(0)确保空值对应的标签数为0,astype(int)将结果转为整数类型。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 01:39:55