使用pandas分配自定义函数来获取字典中的匹配项

2024-05-14 14:35:18 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我有一个只有一列的表,产品线。我想根据产品线编号创建另一列,其中包含产品线名称。这些信息取自词典。 我已经声明了一本包含产品线和说明的词典:

categories={
'Apparel': 99,
'Bikes': 32}


########   function that returns the category from a gl number
def get_cat(glnum,dic=categories):
    for cat, List in dic.items():
        if glnum in List:
            return cat
    return(0)

data['category']=data['product_line'].apply(lambda x: get_cat(x))

工作

但是,我无法使用方法链接使其工作:

tt = (tt
      .assign(category = lambda d: get_cat(d.gl_product_line)))

这应该是一个与系列相关的错误,但我不确定为什么它不起作用,因为lambda函数应该为数据帧的每一行重复调用get_cat,这显然不会发生

有没有关于如何使用.assign in方法链接来实现这一点的想法


Tags: lambdaindatagetreturnproductlistcat

热门问题