Pandas で条件に基づいて新しい列を作成する方法
多くの場合、特定の条件に基づいて pandas DataFrame に新しい列を作成することができます。
このチュートリアルでは、次の DataFrame を使用してこれを行う方法の例をいくつか示します。
import pandas as pd import numpy as np #createDataFrame df = pd. DataFrame ({'rating': [90, 85, 82, 88, 94, 90, 76, 75, 87, 86], 'points': [25, 20, 14, 16, 27, 20, 12, 15, 14, 19], 'assists': [5, 7, 7, 8, 5, 7, 6, 9, 9, 5], 'rebounds': [11, 8, 10, 6, 6, 9, 6, 10, 10, 7]}) #view DataFrame df rating points assists rebounds 0 90 25 5 11 1 85 20 7 8 2 82 14 7 10 3 88 16 8 6 4 94 27 5 6 5 90 20 7 9 6 76 12 6 6 7 75 15 9 10 8 87 14 9 10 9 86 19 5 7
例 1: バイナリ値を含む新しい列を作成する
次のコードは、「Good」という名前の新しい列を作成する方法を示しています。この列の値は、指定された行のポイントが 20 より大きい場合は「yes」、それ以外の場合は「no」になります。
#create new column titled 'Good' df['Good'] = np. where (df['points']>20, ' yes ', ' no ') #view DataFrame df rating points assists rebounds Good 0 90 25 5 11 yes 1 85 20 7 8 no 2 82 14 7 10 no 3 88 16 8 6 no 4 94 27 5 6 yes 5 90 20 7 9 no 6 76 12 6 6 no 7 75 15 9 10 no 8 87 14 9 10 no 9 86 19 5 7 no
例 2: 複数の値を含む新しい列を作成する
次のコードは、値が格納される「Good」という名前の新しい列を作成する方法を示しています。
- ポイントが 25 以上の場合は「はい」
- 15 ≤ ポイント < 25 の場合は「おそらく」
- ポイントが 15 未満の場合は「いいえ」
#define function for classifying players based on points def f(row): if row['points'] < 15: val = 'no' elif row['points'] < 25: val = 'maybe' else : val = 'yes' return val #create new column 'Good' using the function above df['Good'] = df. apply (f, axis=1) #view DataFrame df rating points assists rebounds Good 0 90 25 5 11 yes 1 85 20 7 8 maybe 2 82 14 7 10 no 3 88 16 8 6 maybe 4 94 27 5 6 yes 5 90 20 7 9 maybe 6 76 12 6 6 no 7 75 15 9 10 maybe 8 87 14 9 10 no 9 86 19 5 7 maybe
例 3: 既存の列との比較に基づいて新しい列を作成する
次のコードは、値が次の場所にある「assist_more」という名前の新しい列を作成する方法を示しています。
- アシスト > リバウンドの場合は「はい」。
- それ以外の場合は「いいえ」です。
#create new column titled 'assist_more' df['assist_more'] = np. where (df['assists']>df['rebounds'], ' yes ', ' no ') #view DataFrame df rating points assists rebounds assist_more 0 90 25 5 11 no 1 85 20 7 8 no 2 82 14 7 10 no 3 88 16 8 6 yes 4 94 27 5 6 no 5 90 20 7 9 no 6 76 12 6 6 no 7 75 15 9 10 no 8 87 14 9 10 no 9 86 19 5 7 no
その他の Python チュートリアルはここで見つけることができます。