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

使用Pandas生成列公式时遇ufunc循环错误:str类型无sqrt方法

问题解决:DataFrame中平方根运算报错处理

报错翻译

错误:ufunc的循环不支持类型为str的参数0,该类型没有可调用的sqrt方法

问题原因

你把Grid Spacing(m)列初始化为空字符串,导致该列数据类型为字符串(str),而np.sqrt仅支持数值类型(int/float)的计算,因此触发报错。

解决方案

  • 先确保目标列是数值类型
    如果是刚初始化列,不要用空字符串,改用数值型空值:

    ufo['Grid Spacing(m)'] = np.nan
    

    如果列中已有字符串格式的数值,先转换类型(无法转换的内容会被转为NaN):

    import pandas as pd
    ufo['Grid Spacing(m)'] = pd.to_numeric(ufo['Grid Spacing(m)'], errors='coerce')
    
  • 高效计算Area列
    无需使用apply逐行处理,直接对整列调用np.sqrt再乘以系数,效率更高:

    ufo['Area'] = np.sqrt(ufo['Grid Spacing(m)']) * 0.866
    
  • 可选:处理NaN值
    如果计算后出现NaN,可根据需求填充默认值:

    ufo['Area'] = ufo['Area'].fillna(0)
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 20:15:02