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
  • 31,209
  • 16
  • 94
  • 140
gauri
  • 21
  • 4

2 Answers2

3

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
  • 28,570
  • 11
  • 65
  • 77
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
  • 18,339
  • 6
  • 41
  • 73