python把数据框写入MySQL的方法

 更新时间:2022年03月07日 09:29:59   作者:帅帅de三叔  
这篇文章主要介绍了如何让python把数据框写入MySQL,下文利用上海市2016年9月1日公共交通卡刷卡数据的一份数据单展开其方法,需要的小伙伴可以参考一下

背景:

下文利用上海市2016年9月1日公共交通卡刷卡数据

如图:

想做一下上海市通勤数据挖掘,由于源文件有800多兆,用python读取起来很慢很卡,于是想导入数据库MySQL里面处理,以前一般是打开workbench可视化操作导入数据库,这次想换成代码实现,于是琢磨着如何把这个csv文件用python导进去。
一般的,python把数据框写入数据库有两种方法

利用insert into 命令一条一条插入:

采用这种方法,可以爬一条立马向数据库里面插入一条数据,整体衔接好,不怕大量数据一次性塞进数据库导致拥堵;

pd.io.sql.to_sql( )整个数据框以追加的方式整体复制进去

今天主要研究第二种方法

实现代码:

import pandas as pd  #导入数据分析模块
import pymysql #导入数据库接口模块
from sqlalchemy import create_engine
data=pd.read_csv(r"D:\数据\yikatongchengkeshuakashuju\201608\SPTCC20160901.csv",engine='python',header=None) #读取数据encoding='mbcs',
data.columns=["卡号","日期","时间","站点","交通方式","费用","是否有优惠"] #由于原csv文件没有表头,这里添加表头
#print(data.head()) #测试

db=pymysql.connect("localhost","root","123456","metro_sh",charset="utf8") #链接数据库metro_sh
cursor=db.cursor() #获取游标
cursor.execute("drop table if exists metro_sh_20160901") #以重新写入的方式导入数据表
connect=create_engine("mysql+pymysql://root:123456@localhost:3306/metro_sh?charset=utf8")
pd.io.sql.to_sql(data,"metro_sh_20160901",connect,schema="metro_sh",index=False,if_exists="append")

结果截图:

代码解读:

create_engine( )参数说明:

create_engine(mysql+mysqldb://用户名:密码@localhost:端口/数据库名?编码)
设置数据库的编码方式的时候最好与之前pd.read_csv()中的encoding参数一致

pd.io.sql.to_sql( )参数说明:

(数据框, ‘表名’, con=连接键, schema=‘数据库名’, if_exists=‘操作方式’)
操作方式有append、fail、replace

  • append:如果表存在,则将数据添加到这个表的后面
  • fail:如果表存在就不写入
  • replace:如果存在表,删了,覆盖

该方法有一个缺点:

该方法整体性好,内存消耗大,如果内存大可以一试

 到此这篇关于如何让python把数据框写入MySQL的文章就介绍到这了,更多相关python把数据框写入MySQL内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 使用python实现时间序列白噪声检验方式

    使用python实现时间序列白噪声检验方式

    这篇文章主要介绍了使用python实现时间序列白噪声检验方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-06-06
  • PyInstaller安装包瘦身指南

    PyInstaller安装包瘦身指南

    直接pyinstaller打包的话,如果当前pip环境安装的库较多的话,会导致生成的可执行exe程序文件过大,本文详细的介绍了PyInstaller安装包瘦身的过程,感兴趣的可以了解一下
    2023-03-03
  • Python中openpyxl实现vlookup函数的实例

    Python中openpyxl实现vlookup函数的实例

    在本篇文章里小编给大家整理的是关于Python中openpyxl实现vlookup函数的实例内容,有兴趣的朋友们可以学习参考下。
    2020-10-10
  • Python参数传递由浅入深实例教程

    Python参数传递由浅入深实例教程

    这篇文章主要为大家介绍了Python参数传递由浅入深实例教程详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-11-11
  • python多线程编程方式分析示例详解

    python多线程编程方式分析示例详解

    本文介绍一下有关Python多线程的相关应用技巧,线程相对进程来说是"轻量级"的,操作系统用较少的资源创建和管理线程。程序中的线程在相同的内存空间中执行,并共享许多相同的资源,下面看使用方法
    2013-12-12
  • python网络爬虫之模拟登录 自动获取cookie值 验证码识别的具体实现

    python网络爬虫之模拟登录 自动获取cookie值 验证码识别的具体实现

    有时,我们需要爬取一些基于个人用户的用户信息(需要登陆后才可以查看)就要进行模拟登陆,因为验证码往往是作为登陆请求中的请求参数被使用,就需要识别验证码
    2021-09-09
  • 教你在pycharm中使用tensorflow的方法

    教你在pycharm中使用tensorflow的方法

    当前使用的是anaconda的3.8版本,无法正常下载tensorflow包,需要构建虚拟环境使用3.7及以下的解释器才可以,如何解决这个问题呢,下面小编给大家带来了如何在pycharm中使用tensorflow,感兴趣的朋友参考下吧
    2021-11-11
  • Django 1.10以上版本 url 配置注意事项详解

    Django 1.10以上版本 url 配置注意事项详解

    这篇文章主要介绍了Django 1.10以上版本 url 配置注意事项详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-08-08
  • 使用opencv中匹配点对的坐标提取方式

    使用opencv中匹配点对的坐标提取方式

    这篇文章主要介绍了使用opencv中匹配点对的坐标提取方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-06-06
  • Python open()文件处理使用介绍

    Python open()文件处理使用介绍

    这篇文章主要介绍了Python open()文件处理使用介绍,需要的朋友可以参考下
    2014-11-11

最新评论