Pandasでnan値のない行を選択する方法
次のメソッドを使用して、パンダで NaN 値のない行を選択できます。
方法 1: すべての列に NaN 値が含まれない行を選択する
df[~df. isnull (). any (axis= 1 )]
方法 2: 特定の列に NaN 値を含まない行を選択する
df[~df[' this_column ']. isna ()]
次の例は、次の pandas DataFrame で各メソッドを実際に使用する方法を示しています。
import pandas as pd import numpy as np #createDataFrame df = pd. DataFrame ({' team ': ['A', 'B', 'C', 'D', 'E', 'F', 'G'], ' points ': [np.nan, 12, 15, 25, np.nan, 22, 30], ' assists ': [4, np.nan, 5, 9, 12, 14, 10]}) #view DataFrame print (df) team points assists 0 A NaN 4.0 1 B 12.0 NaN 2C 15.0 5.0 3D 25.0 9.0 4 E NaN 12.0 5F 22.0 14.0 6G 30.0 10.0
例 1: すべての列に NaN 値が含まれない行を選択する
次の構文を使用して、DataFrame の各列で NaN 値を含まない行を選択できます。
#create new DataFrame that only contains rows without NaNs no_nans = df[~df. isnull (). any (axis= 1 )] #view results print (no_nans) team points assists 2C 15.0 5.0 3D 25.0 9.0 5F 22.0 14.0 6G 30.0 10.0
結果として得られる DataFrame の各行には、どの列にも NaN 値が含まれていないことに注意してください。
例 2: 特定の列に NaN 値を含まない行を選択する
次の構文を使用して、DataFrame のポイント列に NaN 値を含まない行を選択できます。
#create new DataFrame that only contains rows without NaNs in points column no_points_nans = df[~df[' points ']. isna ()] #view results print (no_points_nans) team points assists 1 B 12.0 NaN 2C 15.0 5.0 3D 25.0 9.0 5F 22.0 14.0 6G 30.0 10.0
結果として得られる DataFrame の各行には、ポイント列に NaN 値が含まれていないことに注意してください。
[Assists]列に NaN 値を持つ行がありますが、その行の[Points]列の値が NaN ではないため、その行は DataFrame に保持されます。
追加リソース
次のチュートリアルでは、パンダで他の一般的なタスクを実行する方法を説明します。
Pandas: NaN 値を含む行を削除する方法
Pandas: NaN 値を文字列に置き換える方法
パンダ: NaN 値を平均値で埋める方法