【问题标题】:python how to add IF statement in a map function using lambdapython如何使用lambda在map函数中添加IF语句
【发布时间】:2021-07-13 16:02:42
【问题描述】:

我有以下 df:

d = {'role': ['admin/tech', 'admin', 'programming/asst/design']}
df = pd.DataFrame(data=d)

我的目标是:

换句话说,提取第一个 '/' IF 行包含 '/' 之前的所有内容

我想出了:

现在我需要为这个函数添加一个 IF 语句

我尝试了类似的方法:

但它不起作用。

提前致谢,非常感谢您的建议!!

【问题讨论】:

  • 请不要将代码发布为截图。
  • Python 的条件表达式需要 else 语句,因此会出现错误。否则如果x.lower 不是True 会发生什么? docs.python.org/2.5/whatsnew/pep-308.html
  • 我坚信这是一些 IDE 错误。终端上的代码与文本编辑器上的代码不同。删除并重写该行可能会起作用。

标签: python dictionary if-statement lambda find


【解决方案1】:

您不需要 lambda 函数来实现您想要实现的目标。 试试这个:

>>> df["role"].str.split("/").str[0]
0          admin
1          admin
2    programming
Name: role, dtype: object

如果出于某种原因您仍想使用lambda,请执行以下操作:

>>> df["role"].apply(lambda x: x.split("/")[0])
0          admin
1          admin
2    programming
Name: role, dtype: object

【讨论】:

    猜你喜欢
    • 2017-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-20
    • 2019-02-28
    • 2017-01-17
    相关资源
    最近更新 更多