color
次のデータフレームに、 のcolor='green'
場合Set == 'Z'
、 の場合、以外の場合となる列を追加するにはどうすればよいですかcolor='red'
?
Type Set
1 A Z
2 B Z
3 B X
4 C Y
ベストアンサー1
選択肢が2つしかない場合は、np.where
:
df['color'] = np.where(df['Set']=='Z', 'green', 'red')
例えば、
import pandas as pd
import numpy as np
df = pd.DataFrame({'Type':list('ABBC'), 'Set':list('ZZXY')})
df['color'] = np.where(df['Set']=='Z', 'green', 'red')
print(df)
収穫
Set Type color
0 Z A green
1 Z B green
2 X B red
3 Y C red
条件が2つ以上ある場合は、np.select
例えば、あなたcolor
が
yellow
いつ(df['Set'] == 'Z') & (df['Type'] == 'A')
- それ以外の
blue
場合(df['Set'] == 'Z') & (df['Type'] == 'B')
- それ以外の
purple
場合(df['Type'] == 'B')
- さもないと
black
、
次に使用する
df = pd.DataFrame({'Type':list('ABBC'), 'Set':list('ZZXY')})
conditions = [
(df['Set'] == 'Z') & (df['Type'] == 'A'),
(df['Set'] == 'Z') & (df['Type'] == 'B'),
(df['Type'] == 'B')]
choices = ['yellow', 'blue', 'purple']
df['color'] = np.select(conditions, choices, default='black')
print(df)
その結果
Set Type color
0 Z A yellow
1 Z B blue
2 X B purple
3 Y C black