Everscale中文网 NEWS
你的位置:Bitune中文网 > Everscale中文网 > 关于Pandas缺失值inf与nan的处理实践
关于Pandas缺失值inf与nan的处理实践
发布日期:2025-01-04 12:22    点击次数:167
1. Pandas缺失值 对于表格数据而言,缺失值分为三种: 一是Pandas中的空值(NaN)二是Pandas中的正负无穷(inf),严格意义上也不算缺失值,表示无穷!三是自定义的缺失值。 1.1. Pandas中的空值 Pandas中的空值有三个:np.nan (Not a Number) 、 None 和 pd.NaT(时间格式的空值,注意大小写不能错),这三个值可以用Pandas中的函数isnull(),notnull(),isna()进行判断。 isnull()和notnull()的结果互为取反,isnull()和isna()的结果一样。 需要特别注意三点: 1.如果某一列数据全是空值且包含pd.NaT,np.nan和None会自动转换成pd.NaT。 2.空值(np.nan、None、pd.NaT)既不是空字符串"“,也不是空格” "。 3.None是 一个 Python 对象 不可以用在任意的 NumPy 或 Pandas 数组里,只用于列表且数据类型是 Object。默认 Pandas 会将 None 转换成 NAN对包含 None 元素的数组进行计算(如: sum, min, max)会抛出 TypeError 异常。 例如通过df.isnull()查看缺失情况。 1.2. Pandas中的正负无穷 对于特别大的数字,或者除数为0时,将产生正负无穷,Pandas中用np.inf表示。 1.3. 自定义缺失值 自定义缺失值有很多不同的形式,如上面刚说的空字符串和空格(当然,一般不用这两个,因为看起来不够直观)。 在获取数据时,可能会有一些数据无法得到,也可能数据本身就没有,造成了缺失值。 对于这些缺失值,在获取数据时通常会用一些符号之类的数据来代替,如问号?,斜杠/,字母NA等。 2. 处理缺失数据 2.1. 用数组过滤 用 df.isin([np.nan, np.inf, -np.inf]) 方法用 df.any() 方法只要包含任意一个缺失的值,any()一个序列中满足一个True,则返回True最后,用 布尔数组来进行切分。 2.2. 替换 inf 和 -inf 成 NaN, 然后选择非空的行数据 用df.replace([np.inf, -np.inf], np.nan),把正负无穷为空值np.nan再用df.notnull(),筛选非空数据再用df.all(),all()一个序列中所有值为True时,返回True,否则为False。 2.3. 替换 inf 和 -inf 成 NaN,再用dropna() 方法删除为空的数据 pandas中的dataframe对象,删除缺失值的方式: df.dropna(how=‘all’) #删除所有内容均为缺失值的行df.dropna(axis=1) #丢弃有缺失值的列df.dropna(axis=1, how = ‘all’) #丢弃所有列中所有值均缺失的列 或者: 将某1列(series格式)中的 inf 替换为数值 将某1列(series格式)中的 inf 替换为NA值 2.4. 用df.fillna(value=values) 将缺失的数据进行填充 填充缺失值: 例如: 3. Pandas处理缺失值函数小结 1.isnull和notnull: 检测是否是空值,可用于dataframe和Series 2.dropna: 丢弃,删除缺失值 axis: 删除行还是列,{0 ro ‘index’, 1 or ‘columns’}, default 0how: 如果等于any则任何值为空都删除,如果等于all则所有值都为空时才删除inplace: 如果为True则修改当前dataframe, 否则返回新的dataframe 3.fillna: 填充空值 value: 用于填充的值,可以是单个值,或者字典(key是列名,value是值)method: 等于ffill使用前一个部位空的值填充forword fill; 等于bfill使用后一个部位空的值天充backword fillaxis: 按行还是按列填充,{0 ro ‘index’, 1 or ‘columns’}inplace: 如果为True则修改当前dataframe, 否则返回新的dataframe 4.replace: 替换,replace(to_replace, value) 前面是需要替换的值,后面是替换后的值。 inplace: 如果为True则修改当前dataframe, 否则返回新的dataframe 总结 以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。 您可能感兴趣的文章:Pandas 如何处理DataFrame中的inf值Pandas中inf值替换的方法使用Pandas将inf, nan转化成特定的值Pandas 处理DataFrame中的inf值实现