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列は確かにブール列です。

必要に応じて、 TrueFalseの代わりに10などの数値を返すこともできることにも注意してください。

 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 をフィルタリングする方法

コメントを追加する

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