找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 2224|回复: 6

[求助] 请教从采购销售数据, 得到剩余库存和库存成本(加权平均价)

10

主题

19

帖子

19

积分

贫民

积分
19
wx_lcddi88c 发表于 2021-8-6 22:18:29 | 显示全部楼层 |阅读模式
请教各位老师,原数据表是采购和销售数据, 分别入库了2仓库, 我想得到最终的每个仓库的剩余数量和加权平均价, 用pandas 或 numpy,  等, 容易实现的任何方式都可以,  如何能得到最后的库存表
源数据表
类型型号数量单价仓库
采购A510仓库1
采购A515仓库1
采购B212仓库1
采购B216仓库1
采购A216仓库2
销售A3仓库1
销售B3仓库1

结果:求剩余库存数量和库存成本(加权平均价)


型号数量加权平均价仓库
A713.08仓库1
A213.08仓库2
B114仓库1



回复

使用道具 举报

0

主题

102

帖子

102

积分

侠客

积分
102
傻眼貓咪 发表于 2021-8-9 16:16:08 | 显示全部楼层
資料庫管理用SQL比較好
回复 支持 反对

使用道具 举报

0

主题

956

帖子

956

积分

圣骑士

积分
956
sheeboard 发表于 2021-8-9 18:18:33 | 显示全部楼层
库存好做,但不知到你加权平均数怎么算。
  1. import pandas as pd
  2. df=pd.read_excel('text.xlsx')
  3. def to_nag(x,y):
  4.     if x=='销售':
  5.         return -y
  6.     else:
  7.         return y

  8. df['数量']=df.apply(lambda x:to_nag(x['类型'],x['数量']),axis=1)
  9. df.groupby(['型号','仓库'])['数量'].sum().reset_index()
复制代码
回复 支持 反对

使用道具 举报

10

主题

19

帖子

19

积分

贫民

积分
19
wx_lcddi88c  楼主| 发表于 2021-8-10 18:15:24 | 显示全部楼层
我恰好需要有加权平均价的计算,   每个型号有自己的加权平均价,  比如型号A,  就是把采购A的每一行的 数量* 单价=金额,    采购A 的所有的金额求和  再除 数量的和,  就得到加权平均价,  
比如A的加权平均价= (5*10+5*15+2*16 ) / (5+5+2)=13.08
回复 支持 反对

使用道具 举报

0

主题

956

帖子

956

积分

圣骑士

积分
956
sheeboard 发表于 2021-8-10 20:28:50 | 显示全部楼层
本帖最后由 sheeboard 于 2021-8-10 22:38 编辑

参考
  1. import numpy as np
  2. df.dropna(how='any',inplace=True)
  3. grouped=df.groupby('型号')
  4. get_wavg=lambda g: np.average(g['单价'],weights=g['数量'])
  5. result=groupoed.apply(get_wavg).reset_index()
复制代码

纯粹是书上的列子
两个结果再merge一下就是你要的了。
Screenshot from 2021-08-10 20-29-16.png
回复 支持 反对

使用道具 举报

10

主题

19

帖子

19

积分

贫民

积分
19
wx_lcddi88c  楼主| 发表于 2021-8-11 00:46:06 | 显示全部楼层
老师,  仓库和型号组合在一起进行分组  ,   分组跟仓库也有关,   老师代码的结果2个价格是独立显示出来的  ,  没有型号和仓库等信息了,  我想最终得到结果的这种表格形式的dataframe,  代码如何写呢,  谢谢老师,

型号        数量        加权平均价        仓库
A        7        13.08        仓库1
A        2        13.08        仓库2
B        1        14        仓库1
回复 支持 反对

使用道具 举报

0

主题

956

帖子

956

积分

圣骑士

积分
956
sheeboard 发表于 2021-8-11 20:59:40 | 显示全部楼层
本帖最后由 sheeboard 于 2021-8-11 21:19 编辑

result=pd.merge(result1,result2,on='型号',how='left')
剩下的自己整理。去看一下 利用python进行数据分析第二版 这本书,问题都是书里的例子。
Screenshot from 2021-08-11 20-59-14.png
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表