python查数据库写入excel_【Python】将数据库中的数据查询出来自动写入excel文档...
近期每天都要监控一个数据。
第一个版本是这样的:
每天新增一个文档来汇总这个数据。这样搞了几天之后,过了一个周末,过来突然发现数据变多了很多,这个时候要调整策略,直接一个文档汇总出要的数据就可以了。
这样查了两天,我又嫌麻烦了,跟同事说了我的需求,问他能不能帮我用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文档...相关推荐
- python将数据写入excel_【Python】将数据库中的数据查询出来自动写入excel文档
近期每天都要监控一个数据.第一个版本是这样的: 每天新增一个文档来汇总这个数据.这样搞了几天之后,过了一个周末,过来突然发现数据变多了很多,这个时候要调整策略,直接一个文档汇总出要的数据就可以了. 这 ...
- python读取word内容写入excel_“python循环写入excel“Word文档的内容提取到excel表格中...
Excel表格内容自动填充到word中的指定位置 使用粘贴链接.在Excel中复制需要进入Word文档中的数据内容,然后在Word文档中,点击选择性粘贴,然后点选粘贴为链接. 如何将EXCEL的文字复 ...
- pythonmat文件转excel_利用python将图片转换成excel文档格式详解
本文主要介绍了关于利用python将图片转换成excel文档的相关内容,编写了一小段Python代码,将图片转为了Excel,纯属娱乐,下面这篇文章主要给大家介绍了关于利用python将图片转换成ex ...
- mac如何用python打开excel,Mac——利用Python读取与写入Excel文档
Mac--利用Python读取与写入Excel文档 目的:按照自定义的格式写入或读取Excel文档,如标红加粗等 Python代码: import xlwt import pandas as pd d ...
- python获取天气信息写入原有的excel文档
最近想统计对比全国各大城市的天气,先把他记录下来,于是通过python脚本来获取每天的天气信息. 注意首先要创建一个excel文档,并且包含一个sheet1工作薄. 代码如下: #coding:utf ...
- python加颜色_python如何给指定的词语加上颜色,并写入Excel文档?
....... 创建文字颜色函数set_color def set_color(color,bold=False): style = xlwt.XFStyle() font = xlwt.Font() ...
- python写入excel文件 保存_python:写入 Excel 文档
创建并保存 Excel 文档 : import openpyxl,os os.chdir('D://练习') wb=openpyxl.Workbook() wb.sheetnames 输出:['She ...
- python实现word文档批量转成自定义格式的excel文档
python实现word转成自定义格式的excel文档(解决思路和代码) 支持按照文件夹去批量处理,也可以单独一个文件进行处理,并且可以自定义标识符 最近在开发一个答题类的小程序,到了录入试题进行测试 ...
- python xlwt xlrd_用xlrd和xlwt操作Excel文档
工作当中经常要操作excel文档,有些完全是纯粹的重复劳动.在我的工作中就遇到这样一个需求: 1. 存在两个excel文档(source.xls/target.xls),列数据是一致的 2. 文档so ...
最新文章
- python多线程并发_Python进阶记录之基础篇(二十四)
- 记录第一次在egret项目中使用Puremvc
- kubernetes离线一键安装教程
- python项目实例初学者-python 初学者必备14张思维导图
- leetcoder reverse polish notation解题笔记
- 替换a链接的href和title
- 将html代码转换为dom,将HTML字符转换为DOM节点并动态添加到文档中
- 【SSH网上商城项目实战18】过滤器实现购物登录功能的判断
- 自定义 Java Annotation ,读取注解值
- DOS批处理全面教程
- android button 图片不缩放,ImageButton如何让图片按比例缩放不被拉伸
- 自动化检测工具助力GJB 8114-2013 C/C++语言编程安全子集标准落地应用
- Birt报表开发工具及Birt runtime部署
- win10安装Offic2016以后,Word文件、Excel文件、PPT文件图标显示不正常解决方法
- 数据中心机房设备发热量精确计算方法
- python 单词拆音节_y在单词或音节中间的单词有哪些?
- 【微机接口】可编程串行异步通信芯片8250
- pr文字模板 12个独特设计全屏标题动画pr动态文字模板
- 编程基础——鱼龙混杂来三波
- python发送免费短信验证码(腾讯云 短信)
热门文章
- SpringMVC拦截器与异常处理
- mysql数据库出现无法登录(ERROR 1045 ),预防和解决及系列问题解决方法。
- jquery ajax返回Internal server error 500错误解决方案
- npm ERR! missing script: dev 解决方案
- PB程序“无法启动此程序,因为计算机中丢失PBvm90.dll。尝试重新安装该程序以解决此问题”的解决方法
- Bind for 0.0.0.0:80 failed: port is already allocated.解决方案
- 无限的Bash历史[关闭]
- java BigDecimal实现精确加减乘除运算
- Mybatis3.3.x技术内幕(十三):Mybatis之RowBounds分页原理
- ZooKeeper的事务日志和快照