I need to make a mathematical operation which is conditional on the value in a second column. Here is the setup.
Given a simple dataframe (df
):
Use:(Not a safe way to achieve it see the comment below )
df['New']=df.col3[df.col1=='B']+10
df
Out[11]:
col1 col2 col3 New
0 A 2 0 NaN
1 A 1 1 NaN
2 B 9 9 19.0
3 NaN 8 4 NaN
4 D 7 2 NaN
5 C 4 3 NaN
Update
pd.concat([df,(df.col3[df.col1=='B']+10).to_frame('New')],1)
Out[51]:
col1 col2 col3 New
0 A 2 0 NaN
1 A 1 1 NaN
2 B 9 9 19.0
3 NaN 8 4 NaN
4 D 7 2 NaN
5 C 4 3 NaN