パンダ: 「列の値が次の場合」の式
pandas で次の構文を使用すると、別の列の値に基づいて列に値を割り当てることができます。
df[' new '] = df[' col ']. map ( lambda x: ' new1 ' if ' A ' in x else ' new2 ' if ' B ' in x else '')
この特定の構文は、次の値を取る「new」という新しい列を作成します。
- Colの値が A と等しい場合はnew1。
- Colの値が B と等しい場合はnew2。
- Colの値が他の値と等しい場合は空の文字列。
次の例は、この構文を実際に使用する方法を示しています。
例: Pandas で「列の値が次の場合」の数式を使用する
さまざまなバスケットボール選手に関する情報を含む次のパンダ データフレームがあるとします。
import pandas as pd #createDataFrame df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'B', 'B', 'C', 'C'], ' points ': [14, 22, 25, 34, 30, 12, 10, 18]}) #view DataFrame print (df) team points 0 to 14 1 to 22 2 to 25 3 to 34 4 B 30 5 B 12 6 C 10 7 C 18
ここで、値がチーム列の対応する値に依存するcityという名前の新しい列を作成するとします。
これを行うには、次の構文を使用できます。
#create new column called city whose values depend on values in team column
df[' city '] = df[' team ']. map ( lambda x: ' Atlanta ' if ' A ' in x else ' Boston ' if ' B ' in x else '')
#view updated DataFrame
print (df)
team points city
0 A 14 Atlanta
1 to 22 Atlanta
2 to 25 Atlanta
3 to 34 Atlanta
4 B 30 Boston
5 B 12 Boston
6 C 10
7 C 18
この特定の構文では、次の値を取るcityという新しい列が作成されました。
- チーム値が A に等しい場合はアトランタ。
- チーム値が B に等しい場合はボストン。
- チームの値が他の値と等しい場合は空の文字列。
この例では、条件を満たさない値を単に空のままにするために、最後のelseステートメントの後に空の文字列を使用していることに注意してください。
追加リソース
次のチュートリアルでは、パンダで他の一般的な操作を実行する方法を説明します。
Pandas: 列が値と一致する行のインデックスを取得します
パンダ: 特定の文字列を含む列を選択する方法
パンダ: 列に文字列が含まれているかどうかを確認する方法