首页 > 解决方案 > 在数据集上应用内置和自定义创建的函数

问题描述

我有不同列的销售数据。数据采用 Pandas DataFrame 类型。对我的数据应用自定义函数并按相同类别组合所有数据。不幸的是,我无法在此处发布数据集,但我有如下示例数据:

     item  value
0   Item A  59
1   Item B  95
2   Item B  82
3   Item C  40
4   Item A  11

现在我想要的是创建一个函数并将该函数应用于数据。这是我的代码

sum_all = {}
def verify(items , col):
    for i,v in items,col:
        if i == 'item A':
            sum_all[i] += v
            # and so on
            # At the end of this function
    return sum_all

我想在我的数据上运行一个函数,一个是内置的 sum 函数,第二个是同时验证。结果将如下所示:

item    sum   verify

Item A   70     70
Item B   177    177
Item C   40     40

考虑到这不是我的真实数据,这是与我的非常相似的虚拟数据。我还在堆栈溢出上进行了搜索,发现很少有好的解决方案,但它们并没有完全符合我的要求。我也对那些帖子发表了评论,但还没有得到回复。如果您能提供帮助,我将不胜感激

标签: pythonpython-3.xpandas

解决方案


我认为您在谈论 groupby 和 agg 功能。据我所知,这是最好的,您可以尝试此代码。

df = pd.DataFrame([['Item A',59],['Item B',95],['Item B',82],['Item C',40],['Item A',11]], columns=['item','value'])

# If using Python3
from functools import reduce

def verify(series):
       return reduce(lambda x, y: x + y, series)

df.groupby('item').agg({'value': ['sum', verify]})

推荐阅读