当前位置: 首页 > 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))
http://www.dtcms.com/a/191057.html

相关文章:

  • 前端服务器部署分类总结
  • 带直流音量控制的立体声音频功率放大器—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 自定义审计
  • SpringAI更新:废弃tools方法、正式支持DeepSeek!
  • Linux `whoami` 命令深度解析与高阶应用指南
  • “强强联手,智启未来”凯创未来与绿算技术共筑高端智能家居及智能照明领域新生态
  • 《Python星球日记》 第72天:问答系统与信息检索
  • 一文介绍电路交换、报文交换和分组交换
  • 给 DBGridEh 增加勾选用的检查框 CheckBox
  • Qt笔记---》.pro中配置
  • Java项目拷打(外卖+点评)
  • Java大师成长计划之第22天:Spring Cloud微服务架构
  • 软考 系统架构设计师系列知识点之杂项集萃(59)