Pandas で case ステートメントを作成する方法 (例あり)


case ステートメントは、条件を循環して最初の条件が満たされたときに値を返すステートメントの一種です。

Pandas DataFrame に case ステートメントを実装する最も簡単な方法は、次の基本構文を使用するNumPywhere()関数を使用することです。

 df[' new_column '] = np. where (df[' col2 ']<9, 'value1',
                   n.p. where (df[' col2 ']<12, 'value2',
                   n.p. where (df[' col2 ']<15, 'value3', 'value4')))

この特定の関数は、 col2という列の値を調べて、次の値を返します。

  • value1 」(col2 の値が 9 未満の場合)
  • value2 」(col2 の値が 12 未満の場合)
  • value3 」(col2 の値が 15 未満の場合)
  • 前の条件がいずれも当てはまらない場合は「 value4

次の例は、この関数を実際に使用する方法を示しています。

例: Pandas の case ステートメント

次のパンダ データフレームがあるとします。

 import pandas as pd
import numpy as np

#createDataFrame
df = pd. DataFrame ({' player ': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
                   ' points ': [6, 8, 9, 9, 12, 14, 15, 17, 19, 22]})

#view DataFrame
df

	player points
0 1 6
1 2 8
2 3 9
3 4 9
4 5 12
5 6 14
6 7 15
7 8 17
8 9 19
9 10 22

次の構文を使用して、 points列の値によって値が決定されるclassという新しい列を作成する case ステートメントを作成できます。

 #add 'class' column using case-statement logic
df[' class '] = np. where (df[' points ']<9, 'Bad',
              n.p. where (df[' points ']<12, 'OK',
              n.p. where (df[' points ']<15, 'Good', 'Great')))

#view updated DataFrame
df

	player points class
0 1 6 Bad
1 2 8 Bad
2 3 9 OK
3 4 9 OK
4 5 12 Good
5 6 14 Good
6 7 15 Great
7 8 17 Great
8 9 19 Great
9 10 22 Great

case ステートメントは、ポイント列の値を調べて、次の値を返しました。

  • ポイント列の値が 9 未満の場合は「 Bad
  • ポイント列の値が 12 未満の場合は「 OK
  • ポイント列の値が 15 未満の場合は「良好
  • 前の条件がどれも当てはまらない場合は「素晴らしい

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

追加リソース

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

Pandas で条件に基づいて新しい列を作成する方法
複数の条件を指定して NumPy Where() 関数を使用する方法

コメントを追加する

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