python 作业 日报模板输出
1 #!/usr/bin/env python
2 # coding: utf-8
3
4 import numpy as np
5 import pandas as pd
6
7 path='C:/Users/Administrator/Downloads/notebook/order.xls'
8 path1='c:/users/administrator/downloads/notebook/buinfo.xls'
9
10 df_order=pd.read_excel(path,skiprows=1,dtype=object)
11 df_buinfo=pd.read_excel(path1,skiprows=1,dtype=object)
12 df_order1=df_order[['分公司','时间','渠道姓名','订单来源','订单状态','是否电信','竣工时间']]
13 df_buinfo1=df_buinfo[['分公司','账号','是否电信','状态','添加时间']]
14 df_order2=df_order1[(~df_order1.分公司.isin(['测试区局','移动部策划组']))&(~df_order1.时间.str.contains('2018'))]
15
16 df_order2['时间']=pd.to_datetime(df_order2['时间'])
17 df_order2['竣工时间']=pd.to_datetime(df_order2['竣工时间'])
18 df_order2['下单月份']=df_order2.时间.dt.month
19 df_order2['竣工月份']=df_order2.竣工时间.dt.month
20 df_order2['下单日']=df_order2.时间.dt.day
21 df_order2['竣工日']=df_order2.竣工时间.dt.day
22 def cutword(word):
23 position=word.find('分')
24 new_word=word[:position]
25 return new_word
26 df_order2['分公司']=df_order2.分公司.apply(cutword)
27
28 #df_order2[df_order2.分公司.str.contains('开')]
29 df_order2.ix[df_order2.分公司=='开县','分公司']='开州'
30 df_order月下单=df_order2[df_order2['订单状态']!='已重新下单'].groupby(['分公司','下单月份']).订单来源.count().unstack().fillna(0)
31 df_order月下单.loc['合计']=df_order月下单.apply(lambda x:x.sum())
32 df_order月下单.astype(int) #月下单统计
33
34 df_order月激活=df_order2[df_order2.订单状态=='已发佣金'].groupby(['分公司','竣工月份']).订单来源.count().unstack().fillna(0)
35 df_order月激活.loc['合计']=df_order月激活.apply(lambda x:x.sum())
36 df_order月激活.astype(int) #月激活统计
37
38 df_order日下单=df_order2[(df_order2['订单状态']!='已重新下单')&(df_order2.下单月份==10)].groupby(['分公司','下单日']).订单来源.count().unstack().fillna(0)
39 df_order日下单.loc['合计']=df_order日下单.apply(lambda x:x.sum())
40 df_order日下单.astype(int) #日下单统计
41
42 df_order日激活=df_order2[(df_order2['订单状态']=='已发佣金')&(df_order2.竣工月份==10)].groupby(['分公司','竣工日']).订单来源.count().unstack().fillna(0)
43 df_order日激活.loc['合计']=df_order日激活.apply(lambda x:x.sum())
44 df_order日激活.astype(int) #日激活统计
45
46 df_order二级日激活=df_order2[(df_order2['订单状态']=='已发佣金')&(df_order2.竣工月份==10)&(df_order2.是否电信=='否')].groupby(['分公司','竣工日']).订单来源.count().unstack().fillna(0)
47 df_order二级日激活.loc['合计']=df_order二级日激活.apply(lambda x:x.sum())
48 df_order二级日激活.astype(int) #二级日激活统计
49
50 df_buinfo1['添加时间']=pd.to_datetime(df_buinfo1['添加时间'])
51 df_buinfo1['月份']=df_buinfo1.添加时间.dt.month
52 df_buinfo1['日']=df_buinfo1.添加时间.dt.day
53 df_buinfo2=df_buinfo1[(df_buinfo1['添加时间']>='2019-01-01 00:00:00')&(~df_buinfo1.分公司.isin(['测试区局','移动部策划组','黑名单']))]
54 df_buinfo2['分公司']=df_buinfo2.分公司.apply(cutword)
55 df_buinfo2.ix[df_buinfo2.分公司=='开县','分公司']='开州'
56
57 df_buinfo月触点=df_buinfo2[df_buinfo2.是否电信=='否'].groupby(['分公司','月份']).账号.count().unstack().fillna(0)
58 df_buinfo月触点.loc['合计']=df_buinfo月触点.apply(lambda x:x.sum())
59 df_buinfo月触点.astype(int) #触点月报
60
61 df_buinfo触点日报=df_buinfo2[(df_buinfo2.是否电信=='否')&(df_buinfo2.月份==10)].groupby(['分公司','日']).账号.count().unstack().fillna(0)
62 df_buinfo触点日报.loc['合计']=df_buinfo触点日报.apply(lambda x:x.sum())
63 df_buinfo触点日报.astype(int) #触点日报
64
65 df_order3=df_order2[(df_order2['订单状态']=='已发佣金')&(df_order2.是否电信=='否')]
66 df_order4=df_order3[['分公司','渠道姓名','订单来源','是否电信','订单状态','下单月份','竣工月份','下单日','竣工日']]
67 df_order5=df_order4.drop_duplicates(['订单来源'],keep='first')
68
69 df_order有销触点=df_order5.groupby(['分公司','是否电信']).订单来源.count().fillna(0).unstack()
70 df_order有销触点.loc['合计']=df_order有销触点.apply(lambda x:x.sum())
71 df_order有销触点.astype(int) #有销触点
72
73 下单月报=df_order月下单.astype(int) #月下单统计
74 激活月报=df_order月激活.astype(int) #月激活统计
75 下单日报=df_order日下单.astype(int) #日下单统计
76 激活日报=df_order日激活.astype(int) #日激活统计
77 二级激活日报=df_order二级日激活.astype(int) #二级日激活统计
78 触点月报=df_buinfo月触点.astype(int) #触点月报
79 触点日报=df_buinfo触点日报.astype(int) #触点日报
80 有销触点=df_order有销触点.astype(int) #有销触点
81
82 with pd.ExcelWriter('d:/淘卡日报.xlsx',encoding='utf8',index=False) as writer:
83 下单月报.to_excel(writer,sheet_name='下单月报')
84 激活月报.to_excel(writer,sheet_name='激活月报')
85 下单日报.to_excel(writer,sheet_name='下单日报')
86 激活日报.to_excel(writer,sheet_name='激活日报')
87 二级激活日报.to_excel(writer,sheet_name='二级激活日报')
88 触点月报.to_excel(writer,sheet_name='触点月报')
89 触点日报.to_excel(writer,sheet_name='触点日报')
90 有销触点.to_excel(writer,sheet_name='有销触点')
91 print('结果已导出,请到D盘查看:淘卡日报.xlsx')
python 作业 日报模板输出的更多相关文章
- Python作业第一课
零基础开始学习,最近周边的同学们都在学习,我也来试试,嘿嘿,都写下来,下次不记得了还能来看看~~ Python作业第一课1)登陆,三次输入锁定,下次不允许登陆2)设计一个三级菜单,菜单内容可自行定义, ...
- python基础_格式化输出(%用法和format用法)(转载)
python基础_格式化输出(%用法和format用法) 目录 %用法 format用法 %用法 1.整数的输出 %o -- oct 八进制%d -- dec 十进制%x -- hex 十六进制 &g ...
- python设计模式之模板模式
python设计模式之模板模式 编写优秀代码的一个要素是避免冗余.在面向对象编程中,方法和函数是我们用来避免编写冗余代码的重要工具. 现实中,我们没法始终写出100%通用的代码.许多算法都有一些(但并 ...
- thinkphp二维数组模板输出方法
thinkphp二维数组模板输出方法 先写个记录,有空再整理发上来
- 《如何让TT T4模板输出多个文件(VS2010中)》-- access911.net 文章
<如何让TT T4模板输出多个文件(VS2010中)>-- access911.net 文章 问题: VS2010中自带的 TT 模板功能挺好用,但是如何定义其输出的目录,或者如何 ...
- 老李分享:开发python的unittest结果输出样式
老李分享:开发python的unittest结果输出样式 Python的unittest结果命令行输出,格式比较乱.为了提高格式输出的可读性,实现可以不同的颜色标识.所以准备扩展Python的un ...
- Python中将一个对象倒序输出的4种方法
Python中将一个对象倒序输出的4种方法就用列表来举例说明吧: >>> lst = [1,2,3,4,5,6] #创建测试列表 #方法1: >>> lst.rev ...
- python json.dumps()函数输出json格式,使用indent参数对json数据格式化输出
在python中,要输出json格式,需要对json数据进行编码,要用到函数:json.dumps json.dumps() :是对数据进行编码 #coding=gbkimport json dict ...
- 【转】Python之向日志输出中添加上下文信息
[转]Python之向日志输出中添加上下文信息 除了传递给日志记录函数的参数(如msg)外,有时候我们还想在日志输出中包含一些额外的上下文信息.比如,在一个网络应用中,可能希望在日志中记录客户端的特定 ...
随机推荐
- zabbix_server.conf配置文件参数
NodeID: 在amster-child 的分布式架构中,这个ID是唯一标识zabbix node的号码 ListenPort:Trapper 类型Item监听的端口, SourceIP: 在连接其 ...
- 一台电脑配置多个GigHub账号
换了新的公司,原来的公司用SVN(比较老了),自己平时用码云(Gitee),新公司使用GitHub.前天通知我注册GitHub账号,但是并未通知用户名的事情(要求用自己的名字),原来的GitHub账号 ...
- Redis深入浅出
一.基础使用 常用命令 keys,expire(过期),ttl(查看生存时间),set,select,dbsize,flushdb(删除当前库),flushall(删除所有), get,append, ...
- Spring系列之事务的控制 注解实现+xml实现+事务的隔离等级
Spring系列之事务的控制 注解实现+xml实现 在前面我写过一篇关于事务的文章,大家可以先去看看那一篇再看这一篇,学习起来会更加得心应手 链接:https://blog.csdn.net/pjh8 ...
- tensorflow(一):基础
一.张量 1.张量的概念 在TensorFlow中,所有的数据都通过张量的形式来表示.从功能的角度,张量可以简单理解为多维数组,零阶张量表示标量(scalar),也就是一个数:一阶张量为向量(vect ...
- html 网页美化--2
html网页美化: 鼠标点击特效:爱心.爆炸烟花(有些特效在Chrome中无法实现,推荐使用edge) 背景樱花花瓣 鼠标滑动彩带 此代码也可以用于博客园主页美化(需要申请JS权限):复制到博客侧边栏 ...
- 「DevOps 转型与实践」沙龙回顾第一讲
9 月 19 日,CODING 和中国 DevOps 社区联合举办的深圳第九届 Meetup 在腾讯大厦 2 楼多功能圆满结束.本次沙龙以 「DevOps 转型与实践」 为主题,4 位来自互联网.金融 ...
- windev的内部窗口传参方式及其与类的相似性
最近的应用,需要向一个内部窗口(internal window)传参,因为官方文档的说明较为宽泛,虽然结果只有两小段代码,但也费了很大的劲.把所有关于procedure的文档看一遍,又是重新学习了一遍 ...
- SSIS 生成文件
程序说明 此SSIS的目标是生成如下的文本文件 此文件的列由TAB键分割,可以使用notepad++来查看 这样就能够看清TAB键了 文件由%H%表示头部和%D%表示的细节部分 以下为程序开发使用的V ...
- Java NIO:通道
最近打算把Java网络编程相关的知识深入一下(IO.NIO.Socket编程.Netty) Java NIO主要需要理解缓冲区.通道.选择器三个核心概念,作为对Java I/O的补充, 以提升大批量数 ...