在Python中映射if语句

Bra*_*onM 5 python lambda functional-programming pandas

我试图在python 2.7中的pandas数据帧(基本上是一个列表)上映射以下函数:

df["Cherbourg"] = df["Embarked"].map(lambda x: if (x == "C") 1 else 0)
Run Code Online (Sandbox Code Playgroud)

但是使用像这样的lambda函数的python错误是语法错误.有没有办法在python中映射这样的if语句?

pnv*_*pnv 15

尝试

lambda x: 1 if x == "C" else 0
Run Code Online (Sandbox Code Playgroud)

可能重复 是否有办法在python的lambda中执行"if"

示例:

map(lambda x: True if x % 2 == 0 else False, range(1, 11))
Run Code Online (Sandbox Code Playgroud)

结果将是 - [False,True,False,True,False,True,False,True,False,True]


EdC*_*ica 5

这样做会更简单:

df["Cherbourg"] = (df["Embarked"] == "C").astype('int)
Run Code Online (Sandbox Code Playgroud)