Pandas: 条件に基づいてブール列を作成する方法
次の基本構文を使用して、pandas DataFrame に条件ベースのブール列を作成できます。
df[' boolean_column '] = np. where (df[' some_column '] > 15, True , False )
この特定の構文は、2 つの可能な値を持つ新しいブール列を作成します。
- some_columnの値が 15 より大きい場合はTrue 。
- some_columnの値が 15 以下の場合はFalse 。
次の例は、この構文を実際に使用する方法を示しています。
例: Pandas で条件に基づいてブール列を作成する
さまざまなバスケットボール選手に関する情報を含む次のパンダ データフレームがあるとします。
import pandas as pd #createDataFrame df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'], ' points ': [5, 17, 7, 19, 12, 13, 9, 24]}) #view DataFrame print (df) team points 0 to 5 1 to 17 2 to 7 3 to 19 4 B 12 5 B 13 6 B 9 7 B 24
次のコードを使用して、ポイント列の値が 15 より大きい場合はTrue 、それ以外の場合はFalseを返す、 good_playerという新しい列を作成できます。
import numpy as np
#create new boolean column based on value in points column
df[' good_player '] = np. where (df[' points '] > 15, True , False )
#view updated DataFrame
print (df)
team points good_player
0 To 5 False
1 To 17 True
2 To 7 False
3 To 19 True
4 B 12 False
5 B 13 False
6 B 9 False
7 B 24 True
Good_playerという新しい列には、 TrueまたはFalse の2 つの値のみが含まれることに注意してください。
dtypes()関数を使用して、新しいGood_player列が実際にブール列であることを確認できます。
#display data type of good_player column
df[' good_player ']. dtype
dtype('bool')
新しいGood_player列は確かにブール列です。
必要に応じて、 TrueとFalseの代わりに1や0などの数値を返すこともできることにも注意してください。
import numpy as np
#create new boolean column based on value in points column
df[' good_player '] = np. where (df[' points '] > 15, 1 , 0 )
#view updated DataFrame
print (df)
team points good_player
0 to 5 0
1 To 17 1
2 to 7 0
3 A 19 1
4 B 12 0
5 B 13 0
6 B 9 0
7 B 24 1
ポイント列の対応する値が 15 より大きい場合、 good_player列には1が含まれるようになりました。
それ以外の場合は、値0が含まれます。
追加リソース
次のチュートリアルでは、パンダで他の一般的な操作を実行する方法を説明します。
Pandas で複数の条件に基づいて行を選択する方法
Pandas で条件に基づいて新しい列を作成する方法
複数の条件で Pandas DataFrame をフィルタリングする方法