Pandas检查dataFrame中的NaN实现

目录
  • 检查Pandas DataFrame中的NaN值
  • 方法1:使用isnull().values.any()方法
  • 方法2:使用isnull().sum()方法
  • 方法3:使用isnull().sum().any()方法
  • 方法4:使用isnull().sum().sum()方法
  • 参考

NaN代表Not A Number,是表示数据中缺失值的常用方法之一。它是一种特殊的浮点值,不能转换为浮点数以外的任何其他类型。

NaN值是数据分析中的主要问题之一,为了得到理想的结果,对NaN进行处理是非常必要的。

检查Pandas DataFrame中的NaN值

在Pandas DataFrame中检查NaN的方法如下:

  • 使用isnull().values.any()方法检查NaN
  • 使用isnull().sum()方法统计NaN
  • 使用isnull().sum().any()方法检查NaN
  • 使用isnull().sum().sum()方法统计NaN

方法1:使用isnull().values.any()方法

# importing libraries
import pandas as pd
import numpy as np

num = {'Integers': [10, 15, 30, 40, 55, np.nan,
                    75, np.nan, 90, 150, np.nan]}

# Create the dataframe
df = pd.DataFrame(num, columns=['Integers'])

# Applying the method
check_nan = df['Integers'].isnull().values.any()

# printing the result
print(check_nan)
# 输出 True

可以通过从isnull().values.any()中删除.values.any()来获得NaN值所在的确切位置。

df['Integers'].isnull()
1
0     False
1     False
2     False
3     False
4     False
5      True
6     False
7      True
8     False
9     False
10     True
Name: Integers, dtype: bool

方法2:使用isnull().sum()方法

# importing libraries
import pandas as pd
import numpy as np

num = {'Integers': [10, 15, 30, 40, 55, np.nan,
                    75, np.nan, 90, 150, np.nan]}

# Create the dataframe
df = pd.DataFrame(num, columns=['Integers'])

# applying the method
count_nan = df['Integers'].isnull().sum()

# printing the number of values present
# in the column
print('Number of NaN values present: ' + str(count_nan))

Number of NaN values present: 3

方法3:使用isnull().sum().any()方法

# importing libraries
import pandas as pd
import numpy as np

nums = {'Integers_1': [10, 15, 30, 40, 55, np.nan, 75,
                    np.nan, 90, 150, np.nan],
        'Integers_2': [np.nan, 21, 22, 23, np.nan, 24, 25,
                    np.nan, 26, np.nan, np.nan]}

# Create the dataframe
df = pd.DataFrame(nums, columns=['Integers_1', 'Integers_2'])

# applying the method
nan_in_df = df.isnull().sum().any()

# Print the dataframe
print(nan_in_df)
# 输出 True

可以通过从isnull().sum().any()中删除.sum().any()来获得NaN值所在的确切位置。

方法4:使用isnull().sum().sum()方法

# importing libraries
import pandas as pd
import numpy as np

nums = {'Integers_1': [10, 15, 30, 40, 55, np.nan, 75,
                    np.nan, 90, 150, np.nan],
        'Integers_2': [np.nan, 21, 22, 23, np.nan, 24, 25,
                    np.nan, 26, np.nan, np.nan]}

# Create the dataframe
df = pd.DataFrame(nums, columns=['Integers_1', 'Integers_2'])

# applying the method
nan_in_df = df.isnull().sum().sum()

# printing the number of values present in
# the whole dataframe
print('Number of NaN values present: ' + str(nan_in_df))

Number of NaN values present: 8

参考

https://www.geeksforgeeks.org/check-for-nan-in-pandas-dataframe/

到此这篇关于Pandas检查dataFrame中的NaN实现的文章就介绍到这了,更多相关Pandas dataFrame NaN内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 解决pandas.DataFrame.fillna 填充Nan失败的问题

    如果单独是 >>> df.fillna(0) >>> print(df) # 可以看到未发生改变 >>> print(df.fillna(0)) # 如果直接打印是可以看到填充进去了 >>> print(df) # 但是再次打印就会发现没有了,还是Nan 将其Nan全部填充为0,这时再打印的话会发现根本未填充,这是因为没有加上参数inplace参数. 一定要将inplace = True加入参数,这样才能让源数据发生改变并保存. &g

  • Pandas过滤dataframe中包含特定字符串的数据方法

    假如有一列全是字符串的dataframe,希望提取包含特定字符的所有数据,该如何提取呢? 因为之前尝试使用filter,发现行不通,最终找到这个行得通的方法. 举例说明: 我希望提取所有包含'Mr.'的人名 1.首先将他们进行字符串化,并得到其对应的布尔值: >>> bool = df.str.contains('Mr\.') #不要忘记正则表达式的写法,'.'在里面要用'\.'表示 >>> print('bool : \n', bool) 2.通过dataframe的

  • 对pandas将dataframe中某列按照条件赋值的实例讲解

    在数据处理过程中,经常会出现对某列批量做某些操作,比如dataframe df要对列名为"values"做大于等于30设置为1,小于30设置为0操作,可以这样使用dataframe的apply函数来实现, 具体实现代码如下: def fun(x): if x >= 30: return 1 else: return 0 values= feature['values'].apply(lambda x: fun(x)) 具体的逻辑可以修改fun函数来实现,但是按照某些条件选择列不是

  • python pandas分割DataFrame中的字符串及元组的方法实现

    目录 1.使用str.split()方法 2.使用join()与split()方法结合 3.使用apply方法分割元组 1.使用str.split()方法 可以使用pandas 内置的 str.split() 方法实现分割字符串类型的数据,并将分割结果写入DataFrame中,以表格形式呈现. 语法: Series.str.split(pat=None, n=-1, expand=False) 其中,pat是字符串或正则表达式,n是一个整数数字,默认为-1.为0或-1时即为最大次数的分割.其他数

  • pandas对dataFrame中某一个列的数据进行处理的方法

    背景:dataFrame的数据,想对某一个列做逻辑处理,生成新的列,或覆盖原有列的值 下面例子中的df均为pandas.DataFrame()的数据 1.增加新列,或更改某列的值 df["列名"]=值 如果值为固定的一个值,则dataFrame中该列所有值均为这个数据 2.处理某列 df["列名"]=df.apply(lambda x:方法名(x,入参2),axis=1) 说明: 1.方法名为单独的方法名,可以处理传入的x数据 2.x为每一行的数据,做为方法的入参1

  • Pandas 如何处理DataFrame中的inf值

    目录 如何处理DataFrame的inf值 DataFrame有关inf的处理技巧 什么是inf? 为什么会产生? 产生inf有什么好处? 产生inf有什么坏处? 怎么处理? 怎么获取到inf的所在位置并进行填补? 如何处理DataFrame的inf值 在用DataFrame计算变化率时,例如(今天-昨天) / 昨天恰好为(2-0) / 0时,这些结果数据会变为inf. 为了方便后续处理,可以利用numpy,将这些inf值进行替换. 1. 将某1列(series格式)中的 inf 替换为数值.

  • 详解pandas.DataFrame中删除包涵特定字符串所在的行

    你在使用pandas处理DataFrame中是否遇到过如下这类问题?我们需要删除某一列所有元素中含有固定字符元素所在的行,比如下面的例子: 以上所述是小编给大家介绍的pandas.DataFrame中删除包涵特定字符串所在的行详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的.在此也非常感谢大家对我们网站的支持!

  • 在Pandas中处理NaN值的方法

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

  • Pandas DataFrame中的tuple元素遍历的实现

    pandas中遍历dataframe的每一个元素 假如有一个需求场景需要遍历一个csv或excel中的每一个元素,判断这个元素是否含有某个关键字 那么可以用python的pandas库来实现. 方法一: pandas的dataframe有一个很好用的函数applymap,它可以把某个函数应用到dataframe的每一个元素上,而且比常规的for循环去遍历每个元素要快很多.如下是相关代码: import pandas as pd data = [["str","ewt"

  • pandas dataframe 中的explode函数用法详解

    在使用 pandas 进行数据分析的过程中,我们常常会遇到将一行数据展开成多行的需求,多么希望能有一个类似于 hive sql 中的 explode 函数. 这个函数如下: Code # !/usr/bin/env python # -*- coding:utf-8 -*- # create on 18/4/13 import pandas as pd def dataframe_explode(dataframe, fieldname): temp_fieldname = fieldname

  • 浅谈pandas中对nan空值的判断和陷阱

    pandas基于numpy,所以其中的空值nan和numpy.nan是等价的.numpy中的nan并不是空对象,其实际上是numpy.float64对象,所以我们不能误认为其是空对象,从而用bool(np.nan)去判断是否为空值,这是不对的. 对于pandas中的空值,我们该如何判断,并且有哪些我们容易掉进去的陷阱,即不能用怎么样的方式去判断呢? 可以判断pandas中单个空值对象的方式: 1.利用pd.isnull(),pd.isna(); 2.利用np.isnan(); 3.利用is表达式

随机推荐

其他