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)外,有时候我们还想在日志输出中包含一些额外的上下文信息.比如,在一个网络应用中,可能希望在日志中记录客户端的特定 ...
随机推荐
- Spring 配置文件AOP
1 <!-- 配置切面bean --> 2 <bean id="permAspect" class="com.tx.spring.aspect.Perm ...
- Python-变量-字符串
str 字符串如何表示字符串? 单行 单引号 '' 如果字符串中有单引号就需要双引号表示,反之亦然 双引号 " " 换行表示 \ one_str = "简洁胜于优雅&qu ...
- C++中_T()和L的区别
转载:https://blog.csdn.net/amusi1994/article/details/53898960 前言 本文旨在介绍于VC++常见的两个类型:_T()和L 概念 字符串前面加 ...
- 【比赛记录】8.21 div2
A 选择一个点\(B(x,0)\)使得\(|dis(A,B)-x|=k.\) 题目实际上就是找到一个最接近\(n\)的数,使得它可以分成两个数\(a,b,\)使\(a-b=k.\) 我们考虑先分成一个 ...
- 初学者的Android移植:在Debian上建立一个稳定的构建环境
介绍 通过在chrooted环境中设置开发环境,避免依赖冲突和沙箱您的Android开发从您的Debian GNU/Linux系统.这是为通配符类别准备的,因为从源代码构建Android似乎没有在其他 ...
- 设计完美windbg断点
说到现场调试,断点是最重要的.通常,在生产环境中解决一个非常复杂的问题需要在本地.非生产环境中调试我自己的一台测试机器.我通常会调试有问题的进程或代码,以便更好地了解它是如何工作的,以及在我进入时需要 ...
- Windows 系统蓝屏错误小全
0 0x00000000 作业完成. 1 0x00000001 不正确的函数. 2 0x00000002 系统找不到指定的档案. 3 0x00000003 系统找不到指定的路径. 4 0x000000 ...
- mysql linux 命令行操作
1. 登录mysql mysql -u 用户名 -p 回车输入密码
- 网站搭建-云服务器ECS的使用
1. 查看购买的云服务器实例,重置密码 2. 查找IP进行查看,此时网页时不存在的,开始配置: 3. 登录putty或其他终端,进行网页搭建,先按教程走一遍,然后再做个性化处理: #安装Apache ...
- Pythonic【15个代码示例】
Python由于语言的简洁性,让我们以人类思考的方式来写代码,新手更容易上手,老鸟更爱不释手. 要写出 Pythonic(优雅的.地道的.整洁的)代码,还要平时多观察那些大牛代码,Github 上有很 ...