小编Rod*_*alm的帖子

使用 apply 函数可以工作,但是使用 .assign() 相同的函数却不能?

我有点卡住了,我有一个可以使用的工作函数.apply(),但是,我似乎无法让它与 一起使用.assign()。我希望它能够与分配一起使用,这样我就可以将多个转换链接在一起。

有人能指出我解决问题的正确方向吗?

这有效

data = {'heading': ['some men', 'some men', 'some women']}

dataframe = pd.DataFrame(data=data)

def add_gender(x):
    if re.search("(womens?)", x.heading, re.IGNORECASE):
        return 'women'
    elif re.search("(mens?)", x.heading, re.IGNORECASE):
        return 'men'
    else:
        return 'unisex'

dataframe['g'] = dataframe.apply(lambda ref: add_gender(ref), axis=1)
Run Code Online (Sandbox Code Playgroud)

这不起作用

dataframe = dataframe.assign(gender = lambda ref: add_gender(ref))
Run Code Online (Sandbox Code Playgroud)

类型错误:预期的字符串或类似字节的对象

这是因为.assign()没有提供轴参数吗?那么也许该函数没有在寻找正确的东西?

阅读文档后,.assign您可以生成一个新列,因此我假设输出与.apply(axis=1)

python dataframe pandas

8
推荐指数
1
解决办法
346
查看次数

标签 统计

dataframe ×1

pandas ×1

python ×1