如何使用“不为空”?在 pandas 中(带有示例)


您可以使用 pandas notnull()函数来测试 pandas DataFrame 的元素是否为 null。

如果某个元素等于 NaN 或 None,则该函数将返回False

否则,该函数将返回True

以下是在实际中使用该功能的几种常见方法:

方法一:过滤任意列中没有空值的行

 df[df. notnull (). all ( 1 )]

方法2:过滤特定列中没有空值的行

 df[df[[' this_column ']]. notnull (). all ( 1 )]

方法三:统计每列非零值的个数

 df. notnull (). sum ()

方法四:统计整个DataFrame中非零值的个数

 df. notnull (). sum (). sum ()

以下示例展示了如何在实践中使用以下 pandas DataFrame 的每种方法:

 import pandas as pd
import numpy as np

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'],
                   ' points ': [18, 22, 19, 14, 14, 11, 20, np.nan],
                   ' assists ': [5, np.nan, 7, 9, 12, 9, 9, np.nan],
                   ' rebounds ': [11, 8, 10, 6, 6, 5, np.nan, 12]})

#view DataFrame
print (df)

  team points assists rebounds
0 A 18.0 5.0 11.0
1 B 22.0 NaN 8.0
2 C 19.0 7.0 10.0
3D 14.0 9.0 6.0
4 E 14.0 12.0 6.0
5 F 11.0 9.0 5.0
6G 20.0 9.0 NaN
7 H NaN NaN 12.0

示例1:过滤任意列中没有空值的行

下面的代码展示了如何过滤DataFrame以仅显示任何列中没有空值的行:

 #filter for rows with no null values in any column
df[df. notnull (). all ( 1 )]


        team points assists rebounds
0 A 18.0 5.0 11.0
2 C 19.0 7.0 10.0
3D 14.0 9.0 6.0
4 E 14.0 12.0 6.0
5 F 11.0 9.0 5.0

请注意,此过滤后的 DataFrame 中的每一行在任何列中都没有空值。

示例2:过滤特定列中没有空值的行

以下代码展示了如何过滤DataFrame以仅显示辅助列中没有空值的行:

 #filter for rows with no null values in the 'assists' column
df[df[[' assists ']]. notnull (). all ( 1 )]

	team points assists rebounds
0 A 18.0 5.0 11.0
2 C 19.0 7.0 10.0
3D 14.0 9.0 6.0
4 E 14.0 12.0 6.0
5 F 11.0 9.0 5.0
6G 20.0 9.0 NaN

请注意,此过滤后的 DataFrame 中的每一行在Helper列中都没有空值。

示例3:统计每列中非零值的数量

下面的代码展示了如何计算DataFrame每一列中非零值的数量:

 #count number of non-null values in each column
df. notnull (). sum ()

team 8
points 7
assists 6
rebounds 7
dtype: int64

从结果我们可以看出:

  • team列有 8 个非零值。
  • 列有 7 个非零值。
  • 助攻列有 6 个非零值。
  • 退回数列有 7 个非零值。

示例4:统计整个DataFrame中非零值的数量

下面的代码展示了如何统计整个DataFrame中非零值的数量:

 #count number of non-null values in entire DataFrame
df. notnull (). sum (). sum ()

28

从输出中我们可以看到整个DataFrame中有28个非零值。

其他资源

以下教程解释了如何在 pandas 中执行其他常见的过滤操作:

如何按列值过滤 Pandas DataFrame
如何在 Pandas 中过滤“不包含”
如何根据多个条件过滤 Pandas DataFrame

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注