Pandas で where() 関数を使用する方法 (例付き)


Where()関数を使用して、pandas DataFrame 内の特定の値を置き換えることができます。

この関数は次の基本構文を使用します。

 df. where (cond, other=nan)

condが True の pandas DataFrame の各値については、元の値が保持されます。

condが False の各値について、元の値は他の引数で指定された値に置き換えられます。

次の例は、実際に次の pandas DataFrame でこの構文を使用する方法を示しています。

 import pandas as pd

#define DataFrame
df = pd. DataFrame ({' points ': [25, 12, 15, 14, 19, 23, 25, 29],
                   ' assists ': [5, 7, 7, 9, 12, 9, 9, 4],
                   ' rebounds ': [11, 8, 10, 6, 6, 5, 9, 12]})

#view DataFrame
df

points assists rebounds
0 25 5 11
1 12 7 8
2 15 7 10
3 14 9 6
4 19 12 6
5 23 9 5
6 25 9 9
7 29 4 12

例 1: DataFrame 全体の値を置換する

次のコードは、 Where()関数を使用して、pandas DataFrame 全体で特定の条件を満たさないすべての値を NaN 値に置き換える方法を示しています。

 #keep values that are greater than 7, but replace all others with NaN
df. where (df>7)

	points assists rebounds
0 25 NaN 11.0
1 12 NaN 8.0
2 15 NaN 10.0
3 14 9.0 NaN
4 19 12.0 NaN
5 23 9.0 NaN
6 25 9.0 9.0
7 29 NaN 12.0

他の引数を使用して、値を NaN 以外のものに置き換えることもできます。

 #keep values that are greater than 7, but replace all others with 'low'
df. where (df>7, other=' low ')

	points assists rebounds
0 25 low 11
1 12 low 8
2 15 low 10
3 14 9 low
4 19 12 low
5 23 9 low
6 25 9 9
7 29 low 12

例 2: 特定の DataFrame 列の値を置換する

次のコードは、 Where()関数を使用して、DataFrame の特定の列内の特定の条件を満たさないすべての値を置き換える方法を示しています。

 #keep values greater than 15 in 'points' column, but replace others with 'low'
df[' points '] = df[' points ']. where (df[' points ']>15, other=' low ')

#view DataFrame
df

	points assists rebounds
0 25 5 11
1 low 7 8
2 low 7 10
3 low 9 6
4 19 12 6
5 23 9 5
6 25 9 9
7 29 4 12

pandaswhere()関数の完全なオンライン ドキュメントは、ここで見つけることができます。

追加リソース

次のチュートリアルでは、パンダで他の一般的な関数を使用する方法を説明します。

Pandasでdescribe()関数を使用する方法
Pandas で idxmax() 関数を使用する方法
Pandas で選択した列に関数を適用する方法

コメントを追加する

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