热线电话:13121318867

登录
2020-12-03 阅读量: 727
用python进行比较复杂的表格信息合并

excel中有三张表,具体情况如下。

测试样本3.xlsx

image.png




现在想把订单号 摊位ID SKU放入一个表中,如何放?

下面给出python代码

# -*- coding: utf-8 -*-

"""

Created on Thu Dec 3 11:19:52 2020


@author: Administrator

"""


#导入库

import pandas as pd


#导入三张表

A=pd.read_excel("D:\\测试样本3.xlsx",skiprows=1,usecols=[0,1],nrows=4)

B=pd.read_excel("D:\\测试样本3.xlsx",skiprows=1,usecols=[3,4],nrows=4)

C=pd.read_excel("D:\\测试样本3.xlsx",skiprows=1,usecols=[6,7],nrows=7)

A.columns=["订单号","摊位ID"]

B.columns=["订单号","SKU"]

C.columns=["摊位ID","SKU"]





#首先根据表C生成一个字典对象,字典的键是每一个商品,字典的值是包含这个商品的货架构成的集和,也就是这个商品在哪些货架上有


商品和摊位对照字典={}



for i in range(C.shape[0]):

print(i,"-----------------")

摊位=C.iloc[i,0]

商品=C.iloc[i,1]

print("商品:",商品)

print("摊位:",摊位)

print("商品和摊位对照字典",商品和摊位对照字典)

if 商品 in 商品和摊位对照字典:

print("在字典里已出现")

商品和摊位对照字典[商品]=商品和摊位对照字典[商品]|{摊位}

else:

print("第一次出现")

商品和摊位对照字典[商品]={摊位}


print(商品和摊位对照字典)




#根据A表生成一个字典对象,字典的键是每一个订单,字典的值是这个订单包含的摊位构成的集和,也就是这个订单的商品是在哪些摊位上买的


订单和摊位对照字典={}



for i in range(A.shape[0]):

订单=A.iloc[i,0]

摊位=A.iloc[i,1]

print("订单:",订单)

print("摊位:",摊位)

if 订单 in 订单和摊位对照字典:

订单和摊位对照字典[订单]=订单和摊位对照字典[订单]|{摊位}

else:

订单和摊位对照字典[订单]={摊位}


print(订单和摊位对照字典)




#然后以表B基础利用三张表的数据进行整合,整合到B表中

B["摊位"]=pd.Series(dtype="O")

for i in range(B.shape[0]):

print(i,"-----------------")

订单=B.iloc[i,0]

商品=B.iloc[i,1]

print("订单:",订单)

print("商品:",商品)

set1=商品和摊位对照字典[商品]

set2=订单和摊位对照字典[订单]

print("包含这个商品的摊位",set1)

print("这个订单中包含的摊位",set2)

摊位=set1&set2

if len(摊位)==0:

摊位={"没找到" }

B.iloc[i,2]=摊位

结果如下:

image.png

0.2213
0
关注作者
收藏
评论(0)

发表评论

暂无数据
推荐帖子