数据处理
((仓库A,型号A,库存量1,在途量1),(仓库B,型号A,库存量2,在途量2),(仓库C,型号A,库存量3,在途量3)
(仓库A,型号B,库存量1,在途量1),(仓库B,型号B,库存量2,在途量2),(仓库C,型号B,库存量3,在途量3))
谁知道如何做成这样
仓库A 仓库B 仓库C 在途量
型号A 库存量1库存量2 库存量2 在途量1+在途量2+在途量3
型号B 库存量1 库存量2 库存量2 在途量1+在途量2+在途量3 ? [
('ZZ0002911', 'F3L50R06W1E3_B11', '北京仓库', 0, 0, 19, 200000),
('ZZ0002911', 'F3L50R06W1E3_B11', '深圳仓库', 0, 0, 2808, 400000),
('ZZ0002911', 'F3L50R06W1E3_B11', '香港_A仓', 0, 0, 0, 0),
('ZZ0002913', 'F3L80R12W1H3_B11', '北京仓库', 0, 0, 13, 5000),
('ZZ0002913', 'F3L80R12W1H3_B11', '深圳仓库', 0, 0, 0, 0),
('ZZ0002913', 'F3L80R12W1H3_B11', '香港_A仓', 0, 0, 0, 0)
]
我有这样的一组数据分别对应[编号,型号,仓库,订单数量,在途数量,库存数量,库存金额],希望按照下面的格式写入excel
编号 型号 北京仓库 深圳仓库 香港_A仓 在途数量 订单数量 金额
ZZ0002911 F3L50R06W1E3_B11 19 2808 0 0 0 600000
ZZ0002913 F3L80R12W1H3_B11 13 0 0 0 0 5000
订单数量,在途数量,金额,都是求和
读出数据和写入excel都是简单问题,关键是算法。编号和型号应该是对应关系吧?你可以编号或型号作为key,各个仓库的库存和在途的数量组成的列表为value,做成一个字典,遍历原始数据,key一致的记录,根据列表的序号来进行计算,完成后的数据就是下面的格式,可以写入excel了。 txxcat 发表于 2020-4-17 17:55
读出数据和写入excel都是简单问题,关键是算法。编号和型号应该是对应关系吧?你可以编号或型号作为key,各 ...
首先谢谢,
你的思路和我第一次的一样,我卡在了仓库的数组上面,如下:
{
‘(ZZ0002911,F3L50R06W1E3_B11)’:‘’,
}
第二条数据
{
‘(ZZ0002911,F3L50R06W1E3_B11)’:‘’,
} uncle0 发表于 2020-4-18 11:45
首先谢谢,
你的思路和我第一次的一样,我卡在了仓库的数组上面,如下:
{
data=[
('ZZ0002911', 'F3L50R06W1E3_B11', '北京仓库', 0, 0, 19, 200000),
('ZZ0002911', 'F3L50R06W1E3_B11', '深圳仓库', 0, 0, 2808, 400000),
('ZZ0002911', 'F3L50R06W1E3_B11', '香港_A仓', 0, 0, 0, 0),
('ZZ0002913', 'F3L80R12W1H3_B11', '北京仓库', 0, 0, 13, 5000),
('ZZ0002913', 'F3L80R12W1H3_B11', '深圳仓库', 0, 0, 0, 0),
('ZZ0002913', 'F3L80R12W1H3_B11', '香港_A仓', 0, 0, 0, 0)
]
warehouse=['北京仓库','深圳仓库','香港_A仓','在途']
data1={}
newdata=[]
#原始数据:编号,型号,仓库,订单数量,在途数量,库存数量,库存金额
#新表数据:编号,型号,北京仓库,深圳仓库,香港_A仓,在途数量,订单数量,金额
for i in data:
newdata= #北京仓库,深圳仓库,香港_A仓,在途数量,订单数量,金额
newdata)]=i #根据在warehouse中的序号来决定新表中的序号,将库存数量分配到对应仓库下
newdata=i #在途数量
newdata=i #订单数量
newdata=i #金额
if (i,i) not in data1:
data1[(i,i)]=newdata
else:
for j in range(len(newdata)):
data1[(i,i)]+=newdata
finaldata=[]
for k,l in data1.items():
k=list(k)
k.extend(l)
finaldata.append(k)
txxcat 发表于 2020-4-18 13:17
感谢,大概理解了
页:
[1]