在 Python 中映射 if 语句

新手上路,请多包涵

我正在尝试将以下函数映射到 python 2.7 中的 pandas 数据框(基本上是一个列表):

 df["Cherbourg"] = df["Embarked"].map(lambda x: if (x == "C") 1 else 0)

但是 python 错误说像这样使用 lambda 函数是语法错误。有什么方法可以在 python 中映射这样的 if 语句吗?

原文由 Brandon 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 430
2 个回答

尝试

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]

原文由 pnv 发布,翻译遵循 CC BY-SA 3.0 许可协议

这样做会更简单:

 df["Cherbourg"] = (df["Embarked"] == "C").astype('int)

原文由 EdChum 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题