2
basic_salary['dem_education_level_numeric']=basic_salary['dem_education_level'].apply(lambda x : 3 if (x == 'high'))

I am getting below error:

SyntaxError: invalid syntax (<ipython-input-20-80adac538241>, line 1)
  File "<ipython-input-20-80adac538241>", line 1
    basic_salary['dem_education_level_numeric']=basic_salary['dem_education_level'].apply(lambda x : 3 if (x == 'high'))
                                                                                                                       ^
SyntaxError: invalid syntax

Please help

ivan_pozdeev
  • 33,874
  • 19
  • 107
  • 152
gauri
  • 21
  • 4

2 Answers2

4

If you're going to have a if inside a lambda statement, an else must also be defined. Every lambda statement must return something, even if it's None. Change your lambda statement to this, by returning None if x isn't "high":

lambda x : 3 if x == 'high' else None # paralysis isn't necessary 
Taku
  • 31,927
  • 11
  • 74
  • 85
1

Lambda statements need to return something, and without an else clause the return may be ambiguous. Change to:

basic_salary['dem_education_level_numeric']=basic_salary['dem_education_level'].apply(lambda x : 3 if x == 'high' else 0)
A.J. Uppal
  • 19,117
  • 6
  • 45
  • 76