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)外,有时候我们还想在日志输出中包含一些额外的上下文信息.比如,在一个网络应用中,可能希望在日志中记录客户端的特定 ...
随机推荐
- Oracle添加键值对盲注
前言 遇到一种注入点,存在于POST参数中,却不能用sqlmap扫出: 分析 request参数格式: %24Q_value1=test1&orderCol=&order=+ASC+& ...
- 树莓派3B+安装64位ubuntu系统和docker工具
想在树莓派3B上安装一些64位应用(例如64位JDK),因此首先要安装64位的操作系统,今天咱们就一起来实战: 原文地址:https://blog.csdn.net/boling_cavalry/ar ...
- Tomcat学习小记(二)
1.Tomcat源码入口 生命周期统一管理接口:LifeCycle 实现LifeCycle接口的类:(idea快捷键:Ctrl+h) 多个组件共同实现LifeCycle接口 Tomcat启动入口分析: ...
- Python-开发规范-遵循PEP8规范
Python中空白 1. 4个空格表示缩进,用4个空格代替一个TAB 2. 不再逗号.分号.冒号前加空格,应该在其后加空格 3. 关系运行符.数学运算符.逻辑运算符.赋值运算符 前后都加一个空格 4. ...
- 剑指offer-递归和循环
1. 斐波那契数列 解: 没啥好说的了,直接上高效的滚动迭代解法.矩阵解法和特征根解法这里不讨论了. class Solution: def Fibonacci(self, n): # write c ...
- Jupyter 绘图怎么显示中文
1. 简单加2行代码即可. import matplotlib.pyplot as plt plt.rcParams['font.sans-serif'] = [u'SimHei'] plt.rcPa ...
- 《C++primerplus》第9章练习题
1.(未使用原书例题)练习多文件组织.在一个头文件中定义一种学生的结构体,存储姓名和年龄,声明三个函数分别用于询问有多少个学生,输入学生的信息和展示学生的信息.在另一个源文件中给出所有函数的定义.在主 ...
- 跟我一起学Redis之五种基本类型及其应用场景举例(干了6个小时)
前言 来啦,老弟?来啦,上一篇就当唠唠嗑,接下来就开始进行实操撸命令,计划是先整体单纯说说Redis的各种用法和应用,最后再结合代码归纳总结. Redis默认有16个数据库(编号为0~15),默认使用 ...
- Java 客户端操作 FastDFS 实现文件上传下载替换删除
FastDFS 的作者余庆先生已经为我们开发好了 Java 对应的 SDK.这里需要解释一下:作者余庆并没有及时更新最新的 Java SDK 至 Maven 中央仓库,目前中央仓库最新版仍旧是 1.2 ...
- CRUD,分页,排序,搜索与AngularJS在MVC
下载source - 53.1 MB 介绍 在选择最新的技术时,有几个因素会起作用,包括这些技术将如何与我们的项目集成.这篇文章解决了开始使用AngularJS和MVC的乞丐的问题.这篇文章告诉使用语 ...