pandas.DataFrame.notna() 是一个非常实用的函数,用于判断 DataFrame 中的每个元素是否 不是缺失值(NaN 或 None)。它返回一个布尔类型的 DataFrame,表示每个元素是否是非空的。本文主要介绍一下Pandas中pandas.DataFrame.notna方法的使用。

DataFrame.notna(self)    → 'DataFrame'      [source]
DataFrame.notnull(self)  → 'DataFrame'      [source]

检测现有(非缺失)值。

返回一个布尔值相同大小的对象,指示值是否不是NA。非缺失值将映射为True。诸如空字符串之类的字符''numpy.inf不视为NA值的字符(除非设置pandas.options.mode.use_inf_as_na = True) 。NA值(例如,Nonenumpy.NaN)被映射为False值。

返回值:

DataFrame

DataFrame中每个元素的布尔值掩码,

指示元素是否不是NA值。

例子

1)基本使用

import pandas as pd
import numpy as np

df = pd.DataFrame({
    'A': [1, 2, np.nan],
    'B': ['x', None, 'z']
})

print(df)
print(df.notna())

2)获取列 A 中非空的行

import pandas as pd
import numpy as np

df = pd.DataFrame({
    'A': [1, 2, np.nan],
    'B': ['x', None, 'z']
})

print(df)
print(df[df['A'].notna()])

3)统计非空值个数

import pandas as pd
import numpy as np

df = pd.DataFrame({
    'A': [1, 2, np.nan],
    'B': ['x', None, 'z']
})

print(df)
print(df.notna().sum())

4)配合 .where().mask() 使用

import pandas as pd
import numpy as np

df = pd.DataFrame({
    'A': [1, 2, np.nan],
    'B': ['x', None, 'z']
})

print(df)
# 只保留非空值,其它设置为 NaN
print(df.where(df.notna()))

推荐文档

相关文档

大家感兴趣的内容

随机列表