python 如何使用 lambda 在 map 函数中添加 IF 语句

python how to add IF statement in a map function using lambda

我有以下 df:

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

我的目标是:

换句话说,如果行包含“/”,则提取第一个“/”之前的所有内容

我想出了:

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

我试过类似的东西:

但它不起作用。

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

您不需要 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