📅  最后修改于: 2023-12-03 15:10:46.091000             🧑  作者: Mango
在 pandas 中,数据可用 NaN (Not a Number) 表示空值。有时候需要查找空值在熊猫数据框中的位置,下面介绍几种 Python 实现方法。
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()
同 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()
用于检查每个元素是否为空值(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')
将数据框转换为一个“堆栈”数据框,其中每个值现在表示索引和对应的值,然后,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')],
)
以上四种方法都可以查找到空值在熊猫数据框中的位置。其中,第一种方法最常用且最简单。