Python操作Excel(一)

数据下载地址:链接:https://pan.baidu.com/s/1iRnn7sLaQl6BxiJBXB6Adg 密码:zuok

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import pandas as pd
import os


data = pd.read_excel('/Users/taoegoo/Downloads/data.xls')

data['日期'] = [x.split(' ')[0] for x in data['时间']]

# 读取目标城市
target_city = pd.read_excel('/Users/taoegoo/Downloads/目标城市.xlsx')
target_citys = list(target_city['城市'])

data['是否在目标城市存在'] = None
data.loc[data['城市'].isin(target_citys), '是否在目标城市存在'] = 1
data.loc[data['是否在目标城市存在'].isnull(), '是否在目标城市存在'] = 0

writer = pd.ExcelWriter('数据汇总.xlsx')
starts = 0
agency = data['代理商'].unique()

for i in agency:
data_agency = data[data['代理商'] == i]
order = data_agency.groupby('日期')['城市'].count() # 每日总订单量
sold = data_agency.groupby('日期')['价格(元)'].sum() # 每日售出金额
order_target = data_agency[data_agency['是否在目标城市存在'] == 1].groupby('日期')['城市'].count() # 每日目标城市订单量
solder_target = data_agency[data_agency['是否在目标城市存在'] == 1].groupby('日期')['价格(元)'].sum() # 每日目标城市售出金额

# 整理成表
table = pd.concat([order, sold, order_target, solder_target], axis=1)
table = pd.DataFrame(table)
table.columns = ['总订单量', '总销售价格', '目标城市订单数', '目标城市售出价格']
# 写入Excel
title = pd.DataFrame(['代理商:' + i]) # 将代理商名称设置为小标题
title.to_excel(writer, startrow=starts, index=False, columns=None, header=False)
table.to_excel(writer, startrow=starts+1) # 写入对应代理商的数据
starts = starts + (len(table) + 2) + 3 # 下一个代理商的写入位置

writer.save()