在 Python 中映射 if 语句

Posted

技术标签:

【中文标题】在 Python 中映射 if 语句【英文标题】:Map an if statement in Python 【发布时间】:2015-05-28 15:42:50 【问题描述】:

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

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

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

【问题讨论】:

【参考方案1】:

试试

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]

【讨论】:

【参考方案2】:

这样做会更简单:

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

【讨论】:

【参考方案3】:
df["Cherbourg"] = df["Embarked"].apply(lambda x:1 if x == 'C' else 0)

【讨论】:

此解决方案可能有效,但请添加一些说明以支持此代码解决方案。另外,请格式化反引号内的代码 (`) 我怀疑这是否有帮助甚至根本有效。要添加解释吗?

以上是关于在 Python 中映射 if 语句的主要内容,如果未能解决你的问题,请参考以下文章

Python 字典映射函数实现switch

Python 字典映射函数实现switch

三MyBatis映射文件深入

在带有许多 if 语句的 for 循环中使用 continue 时性能是不是有所提高?

Python学习---django之ORM语法[对象关系映射]180124

python中通过元类(TYPE)简单实现对象关系映射(ORM)