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

Pandas对object类型列非空单元格应用函数报TypeError问题咨询

报错原因
  • 核心原因是Seam_Height列的数据类型为object,列中部分看起来是数值的内容实际是字符串格式,将字符串传入自定义函数和整数做大小比较时,就会触发这个类型不兼容的报错。
  • 你当前使用整行apply的写法效率极低,当数据量较大时性能会非常差,属于不必要的遍历操作。
解决方法

第一步:先将目标列转为数值类型

用pd.to_numeric转换列类型,无法转为数值的内容会自动变为NaN,刚好符合你空值的判定逻辑:

df['Seam_Height'] = pd.to_numeric(df['Seam_Height'], errors='coerce')

第二步:实现分级逻辑

推荐用向量化的pd.cut实现,不需要自定义函数、不需要遍历,性能远高于apply写法,且可以完全匹配你原函数的判断逻辑:

df['Seam_class'] = pd.cut(
    df['Seam_Height'],
    bins=[-float('inf'), 43, 60, 72, float('inf')],
    labels=['V_low', 'Low', 'Medium', 'High'],
    right=False # 匹配原函数<阈值的判断逻辑,区间为左闭右开
).fillna(' ')

如果一定要沿用你写的自定义函数,也可以仅对Seam_Height列做操作,不需要整行遍历:

df['Seam_class'] = df['Seam_Height'].apply(lambda x: seam_thickness_class_func(x) if pd.notnull(x) else ' ')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 06:36:01