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

【Python基础-Pandas】解决Pandas会自动把None转成NaN的问题

1. 背景

目前dataframe中的数据如下,power字段表示功率值,第一个值为20.0,第二个值为None。需要计算电量值,电量 = 功率 * 0.25,并保存到energy字段中,如果功率值为None,则电量值也为None。

   power
0   20.0
1   None
df = pd.DataFrame(data={'power': [20, None]})df['energy'] = df.apply(lambda col: Decimal(col['power']) * Decimal(0.25)if col['power'] is not None else None, axis=1)
print(df)

结果如下:

   power energy
0   20.0   5.00
1    NaN    NaN

发现原本的None值被自动转成了NaN

2. 解决

Pandas会自动将Python中的None值转换为NaN("Not a Number"的缩写)值。NaN是Pandas中表示缺失数据的一种特殊值。这种自动转换是因为None通常用于表示缺失或空数据,而NaN是Pandas用于处理缺失数据的标准方式。

如果不希望Pandas自动将None转换为NaN,您可以在创建Series或DataFrame对象时明确指定dtype(数据类型),将其设置为适当的数据类型,以便None可以保持原样。

如下:

df = pd.DataFrame(data={'power': [20, None]}, dtype=object)df['energy'] = df.apply(lambda col: Decimal(col['power']) * Decimal(0.25)if col['power'] is not None else None,axis=1)
print(df)

结果如下:

  power energy
0    20   5.00
1  None   None
http://www.lryc.cn/news/188668.html

相关文章:

  • 学习记忆——数学篇——案例——代数——方程——一元二次方程
  • 接口测试及常用接口测试工具
  • 【java学习】数组中涉及的常见算法-含冒泡排序(11)
  • useEffect Hook使用纠错
  • LeetCode【739】每日温度
  • 核桃派walnutpi添加红外遥控器键盘映射(其他的linux板子同理)ir-keytable
  • cartographer(2)-launch-lua的配置
  • 【C++设计模式之责任链模式:行为型】分析及示例
  • 如何选择编程语言Python Go还是Rust?
  • CAN和CANFD通信介绍
  • 解决网页 H5 对接微信 JSSDK 后自定义分享和跳转APP等没效果
  • 基于DeOldify的给黑白照片、视频上色
  • 腾讯云饥荒服务器配置选择和费用价格表
  • 聊聊MySql索引的类型以及失效场景
  • 零代码编程:用ChatGPT批量调整文件名称中的词汇顺序
  • stm32 hal库 st7789 1.54寸lcd
  • 【arm实验1】GPIO实验-LED灯的流水亮灭
  • MySQL关联数据表操作方式
  • SMOS数据处理,投影变换,‘EPSG:6933‘转为‘EPSG:4326‘
  • 游戏服务端性能测试实战总结
  • 塔望食观察 | 中国海参产业发展现状及挑战
  • springboot 捕获特点异常信息并处理
  • 【Spring框架学习3】Spring Bean的作用域 及 生命周期
  • 多线程并发篇---第四篇
  • vs code 添加vue3代码模板方法
  • 怎么通过Fiddler对APP进行抓包?以及高级应用场景分析
  • centos下安装配置redis7
  • 【angular】TodoList小项目(已开源)
  • 【Java 进阶篇】HTML块级元素详解
  • CSS设置鼠标样式和添加视频样式