前几天接到一下需求,需要把连续2周的数据合并起来,生成一个对比列,原表格如下:
要求把2周同格式的表拼接起来,增加一列签约电梯数_第二周,如下:
由于2周投放的项目编号不一样且每一周分别用30多个城市,需要做30多张表的匹配,选择使用python来直接对相应城市的2周数据做内连接
代码如下:
import pandas as pd
import os
citys = ['成都','重庆','重庆1','福州','贵阳','海口','杭州','合肥','济南','嘉兴','金华','柳州','南昌'
,'南充','南京','南宁','宁波','青岛','泉州','苏州','台州','太原','温州','芜湖','武汉','西安','襄阳','孝感','徐州',
'岳阳','长沙','株洲']
for city in citys:
foldname_1 = '/Users/daimaou/Desktop/已确定点位城市/第一周/'
foldname_2 = '/Users/daimaou/Desktop/已确定点位城市/第二周/'
foldnames ='/Users/daimaou/Desktop/已确定点位城市/合并后/'
file_name = '_联动_'+city+'(新潮'+city+'公司)___点位数__频次_s次_T.xlsx'
data_name_1 = os.path.join(foldname_1,file_name)
data_1 = pd.read_excel(data_name_1,header=2,usecols=[0,1,2,3,4,5,6,7,8,9,10,11])
data_name_2 = os.path.join(foldname_2,file_name)
data_2 = pd.read_excel(data_name_2,header=2,usecols=[0,1,2,3,4,5,6,7,8,9,10,11])
data = pd.merge(data_1,data_2,how = 'outer',on =['项目名称','项目编号','行政区域','详细地址','物业类型','总户数','总入驻企业数','日均人流量','签约楼栋数','签约单元数','总电梯数'])
data.rename(columns={'海普诺凯_x': '签约电梯数_一周','海普诺凯_y': '签约电梯数_二周'},inplace= True)
order = ['项目名称','项目编号','行政区域','详细地址','物业类型','总户数','总入驻企业数','日均人流量','签约楼栋数','签约单元数','总电梯数'
,'签约电梯数_一周','签约电梯数_二周']
data = data[order]
write = pd.ExcelWriter(foldnames+city+'合并表.xlsx')
data.to_excel(write,'城市',index=False)
write.save()
print(city+'成功')