我试图在python 2.7中的pandas数据帧(基本上是列表)上映射以下函数:
df["Cherbourg"] = df["Embarked"].map(lambda x: if (x == "C") 1 else 0)
但是使用像这样的lambda函数的python错误是语法错误。有没有办法在python中映射这样的if语句?
答案 0 :(得分:12)
尝试
lambda x: 1 if x == "C" else 0
可能重复 Is there a way to perform "if" in python's lambda
示例:
map(lambda x: True if x % 2 == 0 else False, range(1, 11))
结果将是 - [False,True,False,True,False,True,False,True,False,True]
答案 1 :(得分:3)
这样做会更简单:
df["Cherbourg"] = (df["Embarked"] == "C").astype('int)
答案 2 :(得分:0)
df [“ Cherbourg”] = df [“ Embarked”]。apply(如果x =='C',则为lambda x:1,否则为0)