pandas实现to_sql将DataFrame保存到数据库中


Posted in Python onJuly 03, 2019

目的

在数据分析时,我们有中间结果,或者最终的结果,需要保存到数据库中;或者我们有一个中间的结果,如果放到数据库中通过sql操作会更加的直观,处理后再将结果读取到DataFrame中。这两个场景,就需要用到DataFrame的to_sql操作。

具体的操作

连接数据库代码

import pandas as pd
from sqlalchemy import create_engine
# default
engine = create_engine('mysql+pymysql://ledao:ledao123@localhost/pandas_learn')
original_data = pd.read_sql_table('cellfee', engine)
original_data

结果如下所示。

pandas实现to_sql将DataFrame保存到数据库中

对数据进行汇总,每个小区的电费进行求和放到Series中,然后将所有小区的总电费放到DataFrame中,最后将DataFrame保存到数据库中,代码如下所示。

all_cells = []
for k, v in original_data.groupby(by=['cityid', 'cellid']):
onecell = pd.Series(data=[k[0], k[1], v['fee'].sum()], index=['cityid', 'cellid', 'fee_sum'])
all_cells.append(onecell)
all_cells = pd.DataFrame(all_cells)
all_cells.to_sql(name='cells_fee', con=engine, chunksize=1000, if_exists='replace', index=None)

对于DataFrame的to_sql函数,需要注意的参数在代码中已经写出来,其中比较重要的是chunksize、if_exists和index。
chunksize可以设置一次入库的大小;if_exists设置如果数据库中存在同名表怎么办,‘replace'表示将表原来数据删除放入当前数据;‘append'表示追加;‘fail'则表示将抛出异常,结束操作,默认是‘fail';index=接受boolean值,表示是否将DataFrame的index也作为表的列存储。

最终存表的结果如下图所示。

pandas实现to_sql将DataFrame保存到数据库中

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python编程中归并排序算法的实现步骤详解
May 04 Python
Python实现进程同步和通信的方法
Jan 02 Python
python实现xlsx文件分析详解
Jan 02 Python
python和flask中返回JSON数据的方法
Mar 26 Python
python中yaml配置文件模块的使用详解
Apr 27 Python
python 使用socket传输图片视频等文件的实现方式
Aug 07 Python
python 并发编程 多路复用IO模型详解
Aug 20 Python
Python list与NumPy array 区分详解
Nov 06 Python
Python实现图像的垂直投影示例
Jan 17 Python
python3使用Pillow、tesseract-ocr与pytesseract模块的图片识别的方法
Feb 26 Python
PyQt5 界面显示无响应的实现
Mar 26 Python
Django更新models数据库结构步骤
Apr 01 Python
python实现控制COM口的示例
Jul 03 #Python
python pandas时序处理相关功能详解
Jul 03 #Python
在linux下实现 python 监控usb设备信号
Jul 03 #Python
django-allauth入门学习和使用详解
Jul 03 #Python
python使用mitmproxy抓取浏览器请求的方法
Jul 02 #Python
Python使用线程来接收串口数据的示例
Jul 02 #Python
使用Python在Windows下获取USB PID&VID的方法
Jul 02 #Python
You might like
wordpress之wp-settings.php
2007/08/17 PHP
PHP var_dump遍历对象属性的函数与应用代码
2010/06/04 PHP
php插入中文到sqlserver 2008里出现乱码的解决办法分享
2012/07/19 PHP
PHP计算加权平均数的方法
2015/07/16 PHP
浅谈laravel orm 中的一对多关系 hasMany
2019/10/21 PHP
PHP基于openssl实现非对称加密代码实例
2020/06/19 PHP
IE和FireFox(FF)中js和css的不同
2009/04/13 Javascript
jquery png 透明解决方案(推荐)
2010/08/21 Javascript
通过javascript把图片转化为字符画
2013/10/24 Javascript
laytpl 精致巧妙的JavaScript模板引擎
2014/08/29 Javascript
JavaScript操作HTML元素和样式的方法详解
2015/10/21 Javascript
Vue动态组件实例解析
2017/08/20 Javascript
浅谈关于JS下大批量异步任务按顺序执行解决方案一点思考
2019/01/08 Javascript
Vue2.0实现组件之间数据交互和通信操作示例
2019/05/16 Javascript
vue-cli配置flexible过程详解
2019/07/04 Javascript
node使用request请求的方法
2019/12/20 Javascript
NestJs使用Mongoose对MongoDB操作的方法
2021/02/22 Javascript
[01:08:09]DOTA2上海特级锦标赛主赛事日 - 1 胜者组第一轮#1Liquid VS Alliance第二局
2016/03/02 DOTA
python通过ElementTree操作XML获取结点读取属性美化XML
2013/12/02 Python
使用Python保存网页上的图片或者保存页面为截图
2016/03/05 Python
新手如何快速入门Python(菜鸟必看篇)
2017/06/10 Python
Python 实现两个服务器之间文件的上传方法
2019/02/13 Python
Python实现性能自动化测试竟然如此简单
2019/07/30 Python
Django对models里的objects的使用详解
2019/08/17 Python
Pandas时间序列:时期(period)及其算术运算详解
2020/02/25 Python
pip install 使用国内镜像的方法示例
2020/04/03 Python
详解Scrapy Redis入门实战
2020/11/18 Python
CSS3弹性盒模型开发笔记(二)
2016/04/26 HTML / CSS
HTML5 File接口在web页面上使用文件下载
2017/02/27 HTML / CSS
Lookfantastic台湾:英国彩妆美发保养购物网
2018/03/26 全球购物
什么是Smart Navigation?
2016/07/03 面试题
工厂门卫岗位职责范本
2014/04/04 职场文书
少年犯观后感
2015/06/11 职场文书
劳动保障事务所个人工作总结
2015/08/12 职场文书
2016年中秋祝酒词
2015/11/26 职场文书
详解如何修改nginx的默认端口
2021/03/31 Servers