パンダ: thresh で dropna() を使用する方法


Dropna()関数を使用すると、欠損値を含む行を pandas DataFrame から削除できます。

thresh引数を使用して、行または列が DataFrame に保持する必要がある非 NaN 値の最小数を指定することもできます。

実際にしきい値引数を使用する最も一般的な方法は次のとおりです。

方法 1: 最小数の非 NaN 値を含む行のみを保持する

 #only keep rows with at least 2 non-NaN values
df. dropna (thresh= 2 )

方法 2: 非 NaN 値の割合が最小限である行のみを保持する

 #only keep rows with at least 70% non-NaN values
df. dropna (thresh= 0.7 * len (df. columns ))

方法 3: 最小数の非 NaN 値を含む列のみを保持する

 #only keep columns with at least 6 non-NaN values
df. dropna (thresh= 6 ,axis= 1 )

方法 4: 非 NaN 値の割合が最小の列のみを保持する

 #only keep columns with at least 70% non-NaN values
df. dropna (thresh= 0.7 * len (df), axis= 1 )

次の例は、次の 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, np.nan, 19, 14, 14, 11, 20, np.nan],
                   ' assists ': [5, np.nan, np.nan, 9, np.nan, 9, 9, 4],
                   ' rebounds ': [11, np.nan, 10, 6, 6, 5, 9, np.nan]})

#view DataFrame
print (df)

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

例 1: 最小数の非 NaN 値を含む行のみを保持する

次の構文を使用すると、少なくとも 2 つの非 NaN 値を持つ行のみを DataFrame に保持できます。

 #only keep rows with at least 2 non-NaN values
df. dropna (thresh= 2 )

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

インデックス位置1の行は、行全体で非 NaN 値が 1 つしかないため、削除されたことに注意してください。

例 2: 非 NaN 値の割合が最小限である行のみを保持する

次の構文を使用すると、少なくとも 70% の非 NaN 値を持つ行のみを DataFrame に保持できます。

 #only keep rows with at least 70% non-NaN values
df. dropna (thresh= 0.7 * len (df. columns ))

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

インデックス位置17の行は、これらの行に非 NaN 値として値の少なくとも 70% が含まれていなかったため、削除されたことに注意してください。

例 3: 最小数の非 NaN 値を含む列のみを保持する

次の構文を使用すると、少なくとも 6 つの非 NaN 値を持つ列のみを DataFrame に保持できます。

 #only keep columns with at least 6 non-NaN values
df. dropna (thresh= 6 ,axis= 1 )

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

「assists」列は、その列に少なくとも 6 つの非 NaN 値が含まれていなかったため、削除されたことに注意してください。

例 4: 非 NaN 値の割合が最小の列のみを保持する

次の構文を使用すると、少なくとも 70% の非 NaN 値を持つ列のみを DataFrame に保持できます。

 #only keep columns with at least 70% non-NaN values
df. dropna (thresh= 0.7 * len (df), axis= 1 )

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

「サポート」列は、この列に少なくとも 70% の非 NaN 値が含まれていなかったため、削除されたことに注意してください。

: pandas dropna()関数の完全なドキュメントはここで見つけることができます。

追加リソース

次のチュートリアルでは、パンダで他の一般的なタスクを実行する方法を説明します。

パンダ:dropna() を使用した後にインデックスをリセットする方法
パンダ: 特定の列で Dropna() を使用する方法
Pandas: 複数の条件に基づいて行を削除する方法

コメントを追加する

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