RCarmody
RCarmody

Reputation: 720

Pandas IF statement referencing other column value

I can't for the life of me find an example of this operation in pandas.... I am trying to write an IF statement saying IF my Check column is true then pull the value from my Proficiency_Value column, and if it's False, then default to 1000.

report_skills['Check'] = report_skills.apply(lambda x: x.Skill_Specialization in x.Specialization, axis=1)
report_skills = report_skills.loc[report_skills['Check'] == True, 'Proficiency_Value'] = 1000

Any ideas why this is not working? I'm sure this is an easy fix

Upvotes: 0

Views: 276

Answers (1)

mosc9575
mosc9575

Reputation: 6347

Let`s create a small example DataFrame like this:

import pandas as pd
import numpy as np

df = pd.DataFrame({'Check':[True,False, False ,True], 
                   'Proficiency_Value':range(4)
                  })

>>> df
   Check  Proficiency_Value
0   True                  0
1  False                  1
2  False                  2
3   True                  3

If you use now the np.where() functione, you can get the result you are asking for.

df['Proficiency_Value'] = np.where(df['Check']==True, df['Proficiency_Value'], 1000)

>>> df
   Check  Proficiency_Value
0   True                  0
1  False               1000
2  False               1000
3   True                  3

Upvotes: 1

Related Questions