使用Pandas将inf, nan转化成特定的值

1. 数据处理中很恶心,出现

RuntimeWarning: divide by zero encountered in divide

发现自己的DataFrame中有除以0的运算,出现了Inf值

2. 为了不让该值影响到我们,打算将inf全变成NaN,则适用replace进行计算

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

3. 举例实现:

In [0]: df = pd.DataFrame([1, 2, np.inf, -np.inf])
In [1]: df.replace([np.inf, -np.inf], np.nan)

结果如图

以上这篇使用Pandas将inf, nan转化成特定的值就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • 关于Python中Inf与Nan的判断问题详解

    大家都知道 在Python 中可以用如下方式表示正负无穷: float("inf") # 正无穷 float("-inf") # 负无穷 利用 inf(infinite) 乘以 0 会得到 not-a-number(NaN) .如果一个数超出 infinite,那就是一个 NaN(not a number)数.在 NaN 数中,它的 exponent 部分为可表达的最大值,即 FF(单精度).7FF(双精度)和 7FFF(扩展双精度). NaN 数与 infinit

  • 在Python中给Nan值更改为0的方法

    如下所示: import pandas as pd df1 = pd.DataFrame([{'col1':'a', 'col2':1}, {'col1':'b', 'col2':2}]) df2 = pd.DataFrame([{'col1':'a', 'col3':11}, {'col1':'c', 'col3':33}]) data = pd.merge(left=df1, right=df2, how='left', left_on='col1', right_on='col1') pr

  • 在Pandas中处理NaN值的方法

    关于NaN值 -在能够使用大型数据集训练学习算法之前,我们通常需要先清理数据, 也就是说,我们需要通过某个方法检测并更正数据中的错误. - 任何给定数据集可能会出现各种糟糕的数据,例如离群值或不正确的值,但是我们几乎始终会遇到的糟糕数据类型是缺少值. - Pandas 会为缺少的值分配 NaN 值. 创建一个具有NaN值得 Data Frame import pandas as pd # We create a list of Python dictionaries # 创建一个字典列表 ite

  • 对pandas数据判断是否为NaN值的方法详解

    实际项目中有这样的需求,将某一列的值,映射成类别型的数据,这个时候,需要我们将范围等频切分,或者等距切分. 具体的做法可以先看某一些特征的具体分布情况,然后我们选择合适的阈值进行分割. def age_map(x): if x < 26: return 0 elif x >=26 and x <= 35: return 1 elif x > 35 and x <= 45: return 2 elif pd.isnull(x): #判断是否为NaN值,== 和in 都无法判断

  • Python快速转换numpy数组中Nan和Inf的方法实例说明

    在使用numpy数组的过程中时常会出现nan或者inf的元素,可能会造成数值计算时的一些错误.这里提供一个numpy库函数的用法,使nan和inf能够最简单地转换成相应的数值. numpy.nan_to_num(x): 使用0代替数组x中的nan元素,使用有限的数字代替inf元素 使用范例: >>>import numpy as np >>> a = np.array([[np.nan,np.inf],\ ... [-np.nan,-np.inf]]) >>

  • 使用Pandas将inf, nan转化成特定的值

    1. 数据处理中很恶心,出现 RuntimeWarning: divide by zero encountered in divide 发现自己的DataFrame中有除以0的运算,出现了Inf值 2. 为了不让该值影响到我们,打算将inf全变成NaN,则适用replace进行计算 df.replace([np.inf, -np.inf], np.nan) 3. 举例实现: In [0]: df = pd.DataFrame([1, 2, np.inf, -np.inf]) In [1]: df

  • Python 实现将numpy中的nan和inf,nan替换成对应的均值

    nan:not a number inf:infinity;正无穷 numpy中的nan和inf都是float类型 t!=t 返回bool类型的数组(矩阵) np.count_nonzero() 返回的是数组中的非0元素个数:true的个数. np.isnan() 返回bool类型的数组. 那么问题来了,在一组数据中单纯的把nan替换为0,合适么?会带来什么样的影响? 比如,全部替换为0后,替换之前的平均值如果大于0,替换之后的均值肯定会变小,所以更一般的方式是把缺失的数值替换为均值(中值)或者

  • js 字符串转化成数字的代码

    方法主要有三种 转换函数.强制类型转换.利用js变量弱类型转换. 1. 转换函数: js提供了parseInt()和parseFloat()两个转换函数.前者把值转换成整数,后者把值转换成浮点数.只有对String类型调用这些方法,这两个函数才能正确运行:对其他类型返回的都是NaN(Not a Number). 一些示例如下: parseInt("1234blue"); //returns 1234 parseInt("0xA"); //returns 10 par

  • pandas实现将日期转换成timestamp

    OUTLINE 常见的时间字符串与timestamp之间的转换 日期与timestamp之间的转换 常见的时间字符串与timestamp之间的转换 这里说的字符串不是一般意义上的字符串,是指在读取日期类型的数据时,如果还没有及时解析字符串,它就还不是日期类型,那么此时的字符串该怎么与时间戳之间进行转换呢? ① 时间字符串转化成时间戳 将时间字符串转化成时间戳分为两步: 第一步:将时间字符串转换成时间元组 第二步:将时间元组转换成时间戳类型 import time data['timestamp'

  • 利用pandas将非数值数据转换成数值的方式

    handle non numerical data 举个例子,将性别属性男女转换成0-1,精通ML的小老弟们可以略过本文~~, 这里不考虑稀疏向量的使用,仅提供一些思路.本来想直接利用pandas的DataFrame.iloc加上for循环直接转换,但试过一遍之后,原数据并有改变....蛋疼写了一个比较 菜的函数,如下. # 非数值列处理函数 def handel_non_numerical_data(df,name): #----------------name是需要处理的列名称(str),暂

  • Python Pandas中缺失值NaN的判断,删除及替换

    目录 前言 1. 检查缺失值NaN 2. Pandas中NaN的类型 3. NaN的删除 dropna() 3.1 删除所有值均缺失的行/列 3.2 删除至少包含一个缺失值的行/列 3.3 根据不缺少值的元素数量删除行/列 3.4 删除特定行/列中缺少值的列/行 4. 缺失值NaN的替换(填充) fillna() 4.1 用通用值统一替换 4.2 为每列替换不同的值 4.3 用每列的平均值,中位数,众数等替换 4.4 替换为上一个或下一个值 总结 前言 当使用pandas读取csv文件时,如果元

  • Pandas中inf值替换的方法

    目录 出现inf的原因 解决办法 PS:为了方便后续处理,可以利用numpy,将这些inf值进行替换. 使用Pandas从MySQL读取数据,在处理之后再写回到数据库时报了一个错误: sqlalchemy.exc.ProgrammingError: (MySQLdb._exceptions.ProgrammingError) inf can not be used with MySQL 很明确报错说明,是因为DataFrame中存在inf数据 出现inf的原因 在数据处理过程中用到了除法,并且出

  • Python无权点文件转化成邻接矩阵方式

    目录 将无权点文件转化成邻接矩阵 邻接矩阵的COO格式 总结 将无权点文件转化成邻接矩阵 目前点文件是两列Excel代码,在进行复杂网络运算时需要转化成邻接矩阵. 我在网上找了一个代码,稍微修改了下,亲测可以成功转化. import csv import numpy as np import pandas as pd import networkx as nx import matplotlib.pyplot as plt f = open('D:/ii/R/C3000.csv') #数据两列(

  • 基于JavaScript将表单序列化类型的数据转化成对象的处理(允许对象中包含对象)

    表单序列化类型的数据是指url传递的数据的格式,形如"key=value&key=value&key=value"这样的key/value的键值对.一般来说使用jQuery的$.fn.serialize函数能达到这样的效果.如何将这样的格式转化为对象? 我们知道使用jQuery的$.fn.serializeArray函数得到的是一个如下结构的对象 [ { name: "startTime" value: "2015-12-02 00:00:

  • FireFox下XML对象转化成字符串的解决方法

    解决方法如下: 复制代码 代码如下: <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>xml转化成字符串</title> <script src="Scripts/jquery-1.4.1.js" type="text/javascript"></script> <script language=&qu

随机推荐