Pandas で 2 つの列を比較する方法: 例付き
多くの場合、Pandas DataFrame 内の 2 つの列を比較し、比較結果を 3 番目の列に書き込みたい場合があります。
次の構文を使用すると、これを簡単に実行できます。
conditions=[(condition1),(condition2)] choices=[" choice1 "," choice2 "] df[" new_column_name "]=np. select (conditions, choices, default)
このコードの動作は次のとおりです。
- 条件は2 つの列の間でチェックする条件です。
- 選択肢は条件に基づいて返される結果です
- np.select は、新しい列の結果を返すために使用されます。
次の例は、このコードを実際に使用する方法を示しています。
例: Pandas の 2 つの列を比較する
5 つの異なる試合で 2 つのサッカー チームが得点したゴール数を示す次のデータフレームがあるとします。
import numpy as np import pandas as pd #createDataFrame df = pd. DataFrame ({' A_points ': [1, 3, 3, 3, 5], ' B_points ': [4, 5, 2, 3, 2]}) #view DataFrame df A_points B_points 0 1 4 1 3 5 2 3 2 3 3 3 4 5 2
次のコードを使用して、行ごとのゴール数を比較し、試合の勝者を 3 列目に表示できます。
#define conditions conditions = [df[' A_points '] > df[' B_points '], df[' A_points '] < df[' B_points ']] #define choices choices = [' A ', ' B '] #create new column in DataFrame that displays results of comparisons df[' winner '] = np. select (conditions, choices, default=' Tie ') #view the DataFrame df A_points B_points winner 0 1 4 B 1 3 5 B 2 3 2 A 3 3 3 Tie 4 5 2 A
比較結果は、 winnerという新しい列に表示されます。
コメント
pandas DataFrame の 2 つの列を比較するときに留意すべき点がいくつかあります。
- 条件と選択肢の数は同じである必要があります。
- デフォルトでは、どの条件も満たされない場合に新しい列に表示する値を指定します。
- このコードが機能するには、 NumPyとPandasが必要です。
追加リソース
次のチュートリアルでは、パンダで他の一般的なタスクを実行する方法を説明します。
Pandas で列の名前を変更する方法
Pandas DataFrame に列を追加する方法
Pandas DataFrame で列の順序を変更する方法