Pandas中inf值替换

问题

今天使用Pandas从MySQL读取数据,在处理之后再写回到数据库时报了一个错误:

sqlalchemy.exc.ProgrammingError: (MySQLdb._exceptions.ProgrammingError) inf can not be used with MySQL

很明确报错说明,是因为DataFrame中存在inf数据

出现inf的原因

在数据处理过程中用到了除法,并且出现了除数为0,导致出现inf,而数据库不支持写入该值

  • 说明,np.inf为正无穷,-np.inf为负无穷

解决办法

将处理过之后的DataFrame中的inf值替换掉,替换代码:

df = df.replace([np.inf, -np.inf], np.nan)

上述代码将处理结果中的正无穷和负无穷都替换为空值,最后写入到数据为中的为null值

参考文章

  1. pandas.DataFrame.replace
  2. Pandas将inf, nan转化成特定的值
  3. 认识python中的inf和nan
上一篇:【Android 逆向】Android 逆向通用工具开发 ( 静态库项目中的网络操作核心类 CNetwork 分析 )


下一篇:小程序和uniapp的getApp().globalDate.