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 値を平均値で埋める方法

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です