当前位置: 首页 > news >正文

解决 TypeError: unsupported operand type(s) for -: ‘NoneType‘ and ‘float‘ 错误

当我们看到出现这个错误,说明这个错误,我们写的程序打算对数值做数学运算,例如加减法,但是数据里面包含 NoneNaN 值,所以计算会报错。

所以,我们要检查数据中某些值是 NoneNaN(空值)

方法1:检查并处理空值

# 检查DataFrame中的空值
print(df.isnull().sum())# 处理空值 - 填充默认值
df['column_name'] = df['column_name'].fillna(0)  # 用0填充
# 或者
df['column_name'] = df['column_name'].fillna(df['column_name'].mean())  # 用平均值填充# 或者直接删除包含空值的行
df = df.dropna(subset=['column_name'])
  1. 检查DataFrame中的空值

看看哪些列和行有空值,省得

print(df.isnull().sum())
  1. 把空值替换成默认值或者其他值
df['column_name'] = df['column_name'].fillna(0)  # 用0填充

上面是用0来填充,如果有其他值可以替换那里。

  1. 冲动派写法:直接删除包含空值的行
df = df.dropna(subset=['column_name'])

方法2:在运算前添加空值检查

# 方法1:使用条件判断
result = x - y if x is not None and y is not None else None# 方法2:使用Pandas的矢量操作(更高效)
df['result'] = df['column1'] - df['column2']  # Pandas会自动处理NaN

方法3:使用 NumPy 的安全运算

import numpy as np# 使用np.subtract并指定out参数处理None
result = np.subtract(array1, array2, out=np.zeros_like(array1), where=(array1!=None)&(array2!=None))

相关文章:

  • 前端服务器部署分类总结
  • 带直流音量控制的立体声音频功率放大器—D2668
  • 第二十四天打卡
  • 服务器被打了怎么应对
  • Vue3吸顶导航的实现
  • Nginx配置与应用案例详解
  • 每周靶点:STEAP1、NPR1及文献分享
  • 快速定位到源码位置的插件 - vite/webpack
  • 量子算法:开启计算新时代的技术密码
  • Java基础之静态代理和动态代理
  • Excel中批量对多个结构相同的工作表执行操作,可以使用VBA宏来实现
  • HCIP(BFD)
  • 音频生成技术的前沿探索:从语音合成到智能Podcast
  • C# winform 日志 NLog
  • LeetCode 热题 100 230. 二叉搜索树中第 K 小的元素
  • Apollo学习——键盘控制速度
  • 白盒测试——基本路径测试法
  • 【网络协议】TCP、HTTP、MQTT 和 WebSocket 对比
  • uni-app vue3版本打包h5后 页面跳转报错(uni[e] is not a function)
  • Lighthouse 自定义审计
  • 法治日报整版聚焦:儿童能否成为短视频主角?该如何监管?
  • 外交部:正确认识和对待历史是检验日本能否恪守和平发展承诺的重要标准
  • 北京“准80后”干部兰天跨省份调任新疆生态环境厅副厅长
  • 朝着解决问题的正确方向迈进——中美经贸高层会谈牵动世界目光
  • 人大新闻教育70年丨16759门课程里的时代密码
  • 季后赛主场优势消失之谜,这事竟然要赖库里