「nullではない」の使い方は?パンダで (例付き)
pandas notnull()関数を使用すると、pandas DataFrame の要素が null かどうかをテストできます。
要素が NaN または None に等しい場合、関数はFalseを返します。
それ以外の場合、関数はTrueを返します。
この関数を実際に使用する一般的な方法をいくつか示します。
方法 1: どの列にも null 値を含まない行をフィルターする
df[df. notnull (). all ( 1 )]
方法 2: 特定の列に null 値を含まない行をフィルターする
df[df[[' this_column ']]. notnull (). all ( 1 )]
方法 3: 各列のゼロ以外の値の数を数える
df. notnull (). sum ()
方法 4: 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: どの列にも null 値を含まない行をフィルターする
次のコードは、DataFrame をフィルターして、どの列にも null 値を含まない行のみを表示する方法を示しています。
#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 の各行のどの列にも null 値がないことに注意してください。
例 2: 特定の列に null 値を含まない行をフィルターする
次のコードは、ヘルパー列に null 値を含まない行のみを表示するように 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列に null 値がないことに注意してください。
例 3: 各列のゼロ以外の値の数を数える
次のコードは、DataFrame の各列のゼロ以外の値の数をカウントする方法を示しています。
#count number of non-null values in each column
df. notnull (). sum ()
team 8
points 7
assists 6
rebounds 7
dtype: int64
結果から次のことがわかります。
- チーム列には 8 つの非ゼロ値があります。
- ポイント列には 7 つの非ゼロ値があります。
- Assists列には 6 つのゼロ以外の値があります。
- バウンス列には 7 つの非ゼロ値があります。
例 4: DataFrame 全体内のゼロ以外の値の数を数える
次のコードは、DataFrame 全体内のゼロ以外の値の数をカウントする方法を示しています。
#count number of non-null values in entire DataFrame
df. notnull (). sum (). sum ()
28
出力から、DataFrame 全体に28 個の非ゼロ値があることがわかります。
追加リソース
次のチュートリアルでは、パンダで他の一般的なフィルタリング操作を実行する方法について説明します。
Pandas DataFrame を列値でフィルタリングする方法
Pandasで「を含まない」をフィルタリングする方法
複数の条件で Pandas DataFrame をフィルタリングする方法