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

pandas统计Netflix数据集演职人员数时报float无split属性错误

报错根因

触发'float' object has no attribute 'split'报错的核心原因是:cast列中的缺失值在pandas读取时会被默认解析为NaN,该值类型为float,你写的set_cast函数仅判断了None和字符串格式的'None',没有覆盖float类型的NaN缺失值,导致代码执行到缺失值位置时,尝试对float值调用split方法触发报错。

修复方案

方案1:修改原有自定义函数(适配原有逻辑)

在函数开头增加对pandas空值的判断,覆盖所有空值场景即可:

import pandas as pd

def set_cast(val):
    # 统一判断所有空值类型:None、np.nan、pd.NA
    if pd.isna(val):
        return 0
    if val == 'None':
        return 0
    return len(val.split(', '))

data['num_of_cast'] = data['cast'].apply(set_cast)

方案2:pandas向量化写法(运行效率更高)

不需要自定义函数,直接用pandas内置的字符串处理方法,会自动跳过空值,大数据量下性能远好于apply循环:

import pandas as pd

# 先把字符串形式的'None'转成标准空值,分割后计数,空值补0转整数
data['num_of_cast'] = (
    data['cast']
    .replace('None', pd.NA)
    .str.split(', ')
    .str.len()
    .fillna(0)
    .astype(int)
)
注意事项
  • 两种方案最终统计结果完全一致,可根据自己的代码习惯选择
  • 不要用val is np.nan判断空值,np.nan和自身不相等,直接判断会出现逻辑错误,用pd.isna()是最稳妥的空值判断方式

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 13:06:24