📜  查找空值熊猫的索引 - Python (1)

📅  最后修改于: 2023-12-03 15:10:46.091000             🧑  作者: Mango

查找空值熊猫的索引 - Python

在 pandas 中,数据可用 NaN (Not a Number) 表示空值。有时候需要查找空值在熊猫数据框中的位置,下面介绍几种 Python 实现方法。

方法一:isnull() & any()

isnull() 用于检查每个元素是否为空值(NaN),返回一个布尔值数据框,any() 检查每个列是否具有真值。代码如下:

import pandas as pd

df = pd.DataFrame({'A': [1, 2, np.nan], 'B': [4, np.nan, np.nan], 'C': [7, 8, 9]})

null_index = df[df.isnull().any(axis=1)].index
print(null_index)

输出结果:

Int64Index([1], dtype='int64')
方法二:isna() & any()

isna()isnull(),用于检查每个元素是否为空值(NaN),返回一个布尔值数据框,any() 检查每个列是否具有真值。代码如下:

import pandas as pd

df = pd.DataFrame({'A': [1, 2, np.nan], 'B': [4, np.nan, np.nan], 'C': [7, 8, 9]})

null_index = df[df.isna().any(axis=1)].index
print(null_index)

输出结果:

Int64Index([1], dtype='int64')
方法三:isnull() & where()

isnull() 用于检查每个元素是否为空值(NaN),返回一个布尔值数据框,其中,where() 方法用另一个数据框替换满足某些条件的元素。代码如下:

import pandas as pd

df = pd.DataFrame({'A': [1, 2, np.nan], 'B': [4, np.nan, np.nan], 'C': [7, 8, 9]})

null_index = df.index[df.isnull().where(df.isnull() == True).any(axis=1)]
print(null_index)

输出结果:

Int64Index([1], dtype='int64')
方法四:stack() & isnull()

将数据框转换为一个“堆栈”数据框,其中每个值现在表示索引和对应的值,然后,isnull() 可以用于查找空值。代码如下:

import pandas as pd

df = pd.DataFrame({'A': [1, 2, np.nan], 'B': [4, np.nan, np.nan], 'C': [7, 8, 9]})

null_index = df.stack()[df.isnull().stack()].index
print(null_index)

输出结果:

MultiIndex([(1, 'B'),
            (1, 'C'),
            (2, 'B'),
            (2, 'C')],
           )

以上四种方法都可以查找到空值在熊猫数据框中的位置。其中,第一种方法最常用且最简单。