近期每天都要监控一个数据。

第一个版本是这样的:

每天新增一个文档来汇总这个数据。这样搞了几天之后,过了一个周末,过来突然发现数据变多了很多,这个时候要调整策略,直接一个文档汇总出要的数据就可以了。

这样查了两天,我又嫌麻烦了,跟同事说了我的需求,问他能不能帮我用python搞成自动查结果然后把结果写到excel中的。他听完需求说这样是没有问题的。中午的时候他就把代码给我了。

大概分这6部分:

01

链接数据库

import pandas as pd

import xlwings as xw

from sqlalchemy import create_engine

pd.set_option('display.float_format',lambda x : '%.4f' % x)#到小数点后两位,完整显示

def engine():

dbs=["yy_wr:DB@&0727Ydb..CN@192.168.1.165:5567/v2"]

engine=create_engine(

'mysql+pymysql://'+dbs[0],

echo=False,

pool_recycle=7200

)

print("成功链接数据库")

return engine

02

将数据库中的查询语句转译到python中

sql="""SELECT DATE_FORMAT(交易时间,'%d') 日期, 服务费,`商户服务费`,流量费,count(*),sum(交易金额) ,'非云闪付' 类别 from transaction_detail_202008 where `收单英文名称`='KQ_ZQ'

and `业务产品` like '%%99%%' and `服务类型` not like '%%云闪付%%'

GROUP BY 1,2,3,4 union all

SELECT DATE_FORMAT(交易时间,'%d') 日期,  服务费,`商户服务费`,流量费,count(*),sum(交易金额),'云闪付' 类别 from transaction_detail_202008 where `收单英文名称`='KQ_ZQ'

and `业务产品` like '%%99%%' and `服务类型` like '%%云闪付%%'

GROUP BY 1,2,3,4;"""

df=pd.read_sql(sql,con=engine())

【他给我的代码,在'%d'中的第一个百分号前还有个%,我这边查出来结果有问题,他那边是正常的,我删掉一个结果才符合预期】

03

打开指定的excel工作表新增工作表

app=xw.App()

df_data=app.books.open(r"E:\工作计划\周例会数据分享\2020.8.30\服务费收取数据源.xlsx")

df_data.sheets.add('newsource')

df_sheet=df_data.sheets('newsource')

04

将数据库中查询出的结果写入指定的excel区域

df_sheet.range("a1").value="每日交易数据"

df_sheet.range("a1:g1").api.merge

df_sheet.range("a2").value=list(df.columns)

for i in range(3,len(df)+3):

df_sheet.range("a"+str(i)).value=list(df.loc[i-3])

print("每日交易数据保存完成")

【merge函数后面的括号已删除,在同事那边没问题,在我这边报错NoneType,我删掉这个括号才算正常】

05

将查出的数据进行汇总处理【透视表】

pdf=df.pivot_table(values="sum(交易金额)",index="日期",columns="类别",aggfunc="sum")

b = pdf.T.agg('sum').T#右侧合计列

pdf['合计']=list(b)

a = pdf.agg('sum')#底部合计行

pdf.loc["合计"]=list(a)

pdf['云闪付占比']=(pdf['云闪付']/pdf['合计']).apply(lambda x:"%.2f%%" % (x * 100))

sever_amount=[]

sever_fee=[]

for  i in range(len(pdf)):

sever_amount.append(df[(df['服务费']=='0.060%')&(df['日期']==pdf.index[i])].sum()['sum(交易金额)'])

sever_fee.append(df[(df['服务费']=='0.060%')&(df['日期']==pdf.index[i])].sum()['sum(交易金额)']*0.0006)

pdf['收取服务费交易金额']=sever_amount

pdf['收取服务费金额']=sever_fee

pdf['收取服务费交易金额占比']=(pdf['收取服务费交易金额']/pdf['合计']).apply(lambda x:"%.2f%%" % (x * 100))

pdf['收取服务费交易金额占非云闪付交易比例']=(pdf['收取服务费交易金额']/pdf['非云闪付']).apply(lambda x:"%.2f%%" % (x * 100))

df_sheet.range("i1").value="云闪付交易"

df_sheet.range("i1:m1").api.merge

df_sheet.range("n1").value="服务费与占比"

df_sheet.range("n1:q1").api.merge

df_sheet.range("i2").value=pdf

print('服务费与云闪付数据保存完成')

【这一部分的处理比较复杂,运用到透视表,还运营到条件求和】

06

保存&关闭文件,退出app,打印提示信息

df_data.save()#保存文件#文件如果是打开状态,不会报错   但更改不会起作用

df_data.close()#关闭文件关闭之后其他的才能操作#保存时会先检查是否已经存在,如果已经存在会有弹窗提醒

app.quit()

print("保存并关闭")

昨晚看了网易直播课的一堂课,用python去做量化投资。

第一部分老师自我介绍【吹牛B】

第二部分讲股票投资的一些指标计算方式

第三部分用python和yahoofinance中的数据进行投资收益测算

感悟:

了解了量化投资是个什么玩意:用算法和指标让程序去帮忙买入卖出。

昨天的课程没有太复杂的算法,只需要用工具把一系列的数据算出来。只是根据设置的条件去买进卖出。

这种投资有胜有负,昨天的BTC模拟数据是9胜10负,但是从年初到现在的收益率已经到了89%。

投资要克服人性中的贪婪。

在投资中,下跌是必然【如同地心引力】,上涨需要集聚很多的能量。如果人在操作股票的时候能够死守规则,应该也不至于被割韭菜割得肉都割掉了。

python查数据库写入excel_【Python】将数据库中的数据查询出来自动写入excel文档...相关推荐

  1. python将数据写入excel_【Python】将数据库中的数据查询出来自动写入excel文档

    近期每天都要监控一个数据.第一个版本是这样的: 每天新增一个文档来汇总这个数据.这样搞了几天之后,过了一个周末,过来突然发现数据变多了很多,这个时候要调整策略,直接一个文档汇总出要的数据就可以了. 这 ...

  2. python读取word内容写入excel_“python循环写入excel“Word文档的内容提取到excel表格中...

    Excel表格内容自动填充到word中的指定位置 使用粘贴链接.在Excel中复制需要进入Word文档中的数据内容,然后在Word文档中,点击选择性粘贴,然后点选粘贴为链接. 如何将EXCEL的文字复 ...

  3. pythonmat文件转excel_利用python将图片转换成excel文档格式详解

    本文主要介绍了关于利用python将图片转换成excel文档的相关内容,编写了一小段Python代码,将图片转为了Excel,纯属娱乐,下面这篇文章主要给大家介绍了关于利用python将图片转换成ex ...

  4. mac如何用python打开excel,Mac——利用Python读取与写入Excel文档

    Mac--利用Python读取与写入Excel文档 目的:按照自定义的格式写入或读取Excel文档,如标红加粗等 Python代码: import xlwt import pandas as pd d ...

  5. python获取天气信息写入原有的excel文档

    最近想统计对比全国各大城市的天气,先把他记录下来,于是通过python脚本来获取每天的天气信息. 注意首先要创建一个excel文档,并且包含一个sheet1工作薄. 代码如下: #coding:utf ...

  6. python加颜色_python如何给指定的词语加上颜色,并写入Excel文档?

    ....... 创建文字颜色函数set_color def set_color(color,bold=False): style = xlwt.XFStyle() font = xlwt.Font() ...

  7. python写入excel文件 保存_python:写入 Excel 文档

    创建并保存 Excel 文档 : import openpyxl,os os.chdir('D://练习') wb=openpyxl.Workbook() wb.sheetnames 输出:['She ...

  8. python实现word文档批量转成自定义格式的excel文档

    python实现word转成自定义格式的excel文档(解决思路和代码) 支持按照文件夹去批量处理,也可以单独一个文件进行处理,并且可以自定义标识符 最近在开发一个答题类的小程序,到了录入试题进行测试 ...

  9. python xlwt xlrd_用xlrd和xlwt操作Excel文档

    工作当中经常要操作excel文档,有些完全是纯粹的重复劳动.在我的工作中就遇到这样一个需求: 1. 存在两个excel文档(source.xls/target.xls),列数据是一致的 2. 文档so ...

最新文章

  1. python多线程并发_Python进阶记录之基础篇(二十四)
  2. 记录第一次在egret项目中使用Puremvc
  3. kubernetes离线一键安装教程
  4. python项目实例初学者-python 初学者必备14张思维导图
  5. leetcoder reverse polish notation解题笔记
  6. 替换a链接的href和title
  7. 将html代码转换为dom,将HTML字符转换为DOM节点并动态添加到文档中
  8. 【SSH网上商城项目实战18】过滤器实现购物登录功能的判断
  9. 自定义 Java Annotation ,读取注解值
  10. DOS批处理全面教程
  11. android button 图片不缩放,ImageButton如何让图片按比例缩放不被拉伸
  12. 自动化检测工具助力GJB 8114-2013 C/C++语言编程安全子集标准落地应用
  13. Birt报表开发工具及Birt runtime部署
  14. win10安装Offic2016以后,Word文件、Excel文件、PPT文件图标显示不正常解决方法
  15. 数据中心机房设备发热量精确计算方法
  16. python 单词拆音节_y在单词或音节中间的单词有哪些?
  17. 【微机接口】可编程串行异步通信芯片8250
  18. pr文字模板 12个独特设计全屏标题动画pr动态文字模板
  19. 编程基础——鱼龙混杂来三波
  20. python发送免费短信验证码(腾讯云 短信)

热门文章

  1. SpringMVC拦截器与异常处理
  2. mysql数据库出现无法登录(ERROR 1045 ),预防和解决及系列问题解决方法。
  3. jquery ajax返回Internal server error 500错误解决方案
  4. npm ERR! missing script: dev 解决方案
  5. PB程序“无法启动此程序,因为计算机中丢失PBvm90.dll。尝试重新安装该程序以解决此问题”的解决方法
  6. Bind for 0.0.0.0:80 failed: port is already allocated.解决方案
  7. 无限的Bash历史[关闭]
  8. java BigDecimal实现精确加减乘除运算
  9. Mybatis3.3.x技术内幕(十三):Mybatis之RowBounds分页原理
  10. ZooKeeper的事务日志和快照