python - 在数据集上应用内置和自定义创建的函数
问题描述
我有不同列的销售数据。数据采用 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
考虑到这不是我的真实数据,这是与我的非常相似的虚拟数据。我还在堆栈溢出上进行了搜索,发现很少有好的解决方案,但它们并没有完全符合我的要求。我也对那些帖子发表了评论,但还没有得到回复。如果您能提供帮助,我将不胜感激
解决方案
我认为您在谈论 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]})
推荐阅读
- docker - AWS 服务发现、nginx 和节点问题
- raml - 如何在 RAML 中指定 API 请求标头值
- angular - 如何更改输入中的节点属性值?
- android - Android:小部件:“嵌入式/预定义”图像丢失?
- php - 未捕获的错误:调用未定义的函数 getConnection()
- ios - 进入信标区域后开始位置更新监控 Swift
- java - Hibernate 与 Where 子句的一对一映射
- amazon-web-services - 如何在处理程序函数之外访问全局范围内的阶段
- powershell - 我可以从历史记录中重新运行 Power Automate 流实例吗?
- angular - Angular 真的需要集成 Odata 排序、过滤等功能吗?