在SAP系统中如何查找以前购买过的某个供应商的物品的价格?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在SAP系统中如何查找以前购买过的某个供应商的物品的价格?相关的知识,希望对你有一定的参考价值。

FBL1N只能显示花了多少钱,看不到具体的项目内容,我想看到具体的项目,比如:抹布 多少块,单价多少,购买了多少;拖把多少个,单价多少,购买了多少?
具体怎么操作?

ME1P可以按物料号、供应商查找历史价格,有单价、数量,及对应的采购订单号。 参考技术A MB51有入库记录追问

MB51里没有具体物品

追答

MB51里面是有物料编码、描述,入库数量和时间的

使用 pandas groupby 查找每周一起购买的物品组合

【中文标题】使用 pandas groupby 查找每周一起购买的物品组合【英文标题】:Finding weekly combinations of items bought together using pandas groupby 【发布时间】:2021-12-19 12:51:13 【问题描述】:

我有一个df

date            category            subcategory         order_id        product_id       branch
2021-05-04      A                   aa                  10              5                web
2021-06-04      A                   dd                  10              2                web
2021-05-06      B                   aa                  18              3                shop
2021-07-06      A                   aa                  50              10               web
2021-07-06      C                   cc                  10              15               web
2021-07-05      A                   ff                  101             30               shop
2021-10-04      D                   aa                  100             15               shop  

我正在尝试回答一个问题每个分店类型每周一起购买哪些商品类别和子类别。我正在考虑将order_ids 分组并将category & subcategory 聚合到list,如下所示:

a = (df.set_index('date')
     .groupby(['order_id','branch'])
     .resample('W-MON', label = 'left')
     .agg('category':list, 'subcategory':list))

返回:

                                                category            subcategory
order_id        branch          date            [A, A, A]           [aa, dd, aa]
10              web             2021-05-04      ...                 ...
18              shop            ...
50              web
100             web
101             shop

我正在尝试构建一个结构,以显示每个 branch 每周购买的 categoriessubcategories 的每个变体的频率,类似于以下内容:

branch                                  date                        
                                        2021-05-04                      2021-05-011
                                                                        ...
web                  category            3, [A, A, A] 
                                         2, [A, A] 
                                         2, [A, A, B, B]

                     subcategory         5, [aa, dd, aa]
                                         4, [dd, aa]
                                         1, [dd]

shop                 category            3, [A, A, A] 
                                         2, [A, A] 
                                         2, [A, A, B, B]

                     subcategory         5, [aa, dd, aa]
                                         4, [dd, aa]
                                         1, [dd]

列表前面的数字表示categoriessubcategories 的特定组合以相同顺序购买的次数。我不确定如何实现这样的结构或类似的结构,以通过branch 显示每周组合频率。 product_id在顺序中的顺序无关紧要,因为最终的篮子是相同的。

所以目标是查看categories, subcategories & product_ids 每周在同一订单中购买的频率。因此,如果 2 个不同的订单具有相同的产品,聚合结果将显示 2, [A,B] [aa, bb] [5, 2],其中列表包含类别、子类别和 product_id 组合。

【问题讨论】:

【参考方案1】:

这是你需要的:

import pandas as pd
import numpy as np
from datetime import timedelta
from datetime import datetime as dt

# df=pd.read_excel('demo.xlsx')

df['date']=pd.to_datetime(df['date'])
df['date']=df['date'].dt.strftime('%Y-%m-%d')
df['date']=pd.to_datetime(df['date'])
df['year_week'] = df['date'].dt.strftime('%Y_%U')

df['orderid_year_week']=df['order_id'].astype(str)+'_'+df['year_week']

df=df.sort_values(['category', 'subcategory','product_id'], ascending=[True, True,True])

a = (df.set_index('orderid_year_week')
     .groupby(['year_week','order_id'],sort=False)
     .agg('category':list, 'subcategory':list,'product_id':list)).reset_index()

a['category'] =a['category'].astype(str)
a['subcategory'] =a['subcategory'].astype(str)
a['product_id'] =a['product_id'].astype(str)

df=pd.pivot_table(a,index=['year_week','category','subcategory','product_id'],values='product_id',aggfunc='count').reset_index()

df.rename('order_id':'count',axis=1,inplace=True)

输出看起来像这样(我在您提供的示例之上添加了更多条目):

你的解释中有些东西不是很清楚。但是,如果这完全回答了您的问题,请告诉我。

【讨论】:

【参考方案2】:

这是一个很好的问题。 您知道名为“Apriori 算法”的数据挖掘技术吗?

您正在做的是挖掘关联规则,该规则通常用于建立对一起购买的东西的理解。

我强烈建议使用 mlxtend 中的常用项集包。这也将允许您通过一起购买的项目的“支持”指标来控制重要性级别,而无需使用您的定制解决方案来发现这一点。

dataset = [['Milk', 'Onion', 'Nutmeg', 'Kidney Beans', 'Eggs', 'Yogurt'],
['Dill', 'Onion', 'Nutmeg', 'Kidney Beans', 'Eggs', 'Yogurt'],
['Milk', 'Apple', 'Kidney Beans', 'Eggs'],
['Milk', 'Unicorn', 'Corn', 'Kidney Beans', 'Yogurt'],
['Corn', 'Onion', 'Onion', 'Kidney Beans', 'Ice cream', 'Eggs']]


import pandas as pd
from mlxtend.preprocessing import TransactionEncoder

te = TransactionEncoder()
te_ary = te.fit(dataset).transform(dataset)
df = pd.DataFrame(te_ary, columns=te.columns_)
df

http://rasbt.github.io/mlxtend/user_guide/frequent_patterns/apriori/

from mlxtend.frequent_patterns import apriori

apriori(df, min_support=0.6)

apriori(df, min_support=0.6, use_colnames=True)

【讨论】:

以上是关于在SAP系统中如何查找以前购买过的某个供应商的物品的价格?的主要内容,如果未能解决你的问题,请参考以下文章

◆◆1如何查找SAP系统内某个Tcode下已经实施的增强(BADiuser-exitBTE….)

SAP系统玩阴的?

SAP里的订单退货

SAP供应商主数据如何修改?求高人指点!!!

客户又是供应商,在SAP系统中怎么处理 (无内容)

推荐系统本质是如何预测评分的问题