pandas,读取或存储DataFrames的数据到mysql中

dataFrames格式的数据是表格形式的,mysql数据库中的数据也是表格形式的,二者可以很方便的读取存储

安装依赖的包

pip install pandas
pip install sqlalchemy
pip install pymysql

使用方法 

第一步:建立mysql数据库的连接

connect_info = ‘mysql+pymysql://{}:{}@{}:{}/{}?charset=utf8‘.format("username", "password", "host", "port", "db数据库名")
engine = create_engine(connect_info)

第二步:读取存储数据库

此步使用的engine为第一步创建的数据库连接

1、读取数据库中的内容【read_sql】

import pandas
pandas.read_sql("sql语句", engine)

2、存储dataFrame数据到数据库中【to_sql】

df.to_sql(name=‘table表名‘,
          con=engine,
          if_exists=‘append‘,
          index=False,
          dtype={‘IterationId‘: sqlalchemy.types.Integer(),
                 ‘title‘: sqlalchemy.types.NVARCHAR(length=255)
                 }
               )

方法说明:

df:dataFrame格式的数据,可以通过DataFrame()方法创建一个该对象

pandas.DataFrame({"ID": [], "标题": []})

name:存储到的表名

con:第一步创建的数据库链接

if_exists:

fail:如果表存在,什么也不做

replace:如果表存在,drop掉表,重新创建一个表,插入数据

append:如果表不存在,创建表插入数据;如果表存在,原表追加数据存储

dtype:表字段对应过去的类型,例子举了整形和字符两种;(列不指定类型的话会用默认类型,但是如果类型不匹配会抛错)

注意点:

1、to_sql的源数据,列名必须和数据库里对应;且不能比数据库中列名多

如果缺少列名,会直接填充缺省值

2、缺省的列,要有默认值

存储到sql的列信息可以为空,但前提是数据库表字段写了默认值;或者类似id这种自增主键允许为空

原文地址:https://www.cnblogs.com/meitian/p/10502657.html

时间: 2024-11-07 18:25:42

pandas,读取或存储DataFrames的数据到mysql中的相关文章

python爬取微博图片数据存到Mysql中遇到的各种坑\python Mysql存储图片

本人长期出售超大量微博数据,并提供特定微博数据打包,Message to [email protected] 前言   由于硬件等各种原因需要把大概170多万2t左右的微博图片数据存到Mysql中.之前存微博数据一直用的非关系型数据库mongodb,由于对Mysql的各种不熟悉,踩了无数坑,来来回回改了3天才完成. 挖坑填坑之旅 建表 存数据的时候首先需要设计数据库,我准备设计了3个表 微博表:[id, userid, blog_text, lat, lng, created_time, res

Scrapy基础(十二)————异步导出Item数据到Mysql中

异步导出数据到Mysql中 上次说过从Item中同步写入数据库,因为网络的下载速度和数据库的I/O速度是不一样的所以有可能会发生下载快,但是写入数据库速度慢,造成线程的堵塞:关于堵塞和非堵塞,同步和异步的关系,因为没接触过,所以也不是很好的理解,这里查看了些资料,已做记录 链接1:https://www.zhihu.com/question/19732473;http://wiki.jikexueyuan.com/project/twisted-intro/ 实现异步写入mysql数据库的思路:

解决hibernate保存数据到mysql中出现乱码问题

今天使用hibernate保存数据到mysql中,发现出现乱码问题,经过检查,发现接收到的是正确中文,说明客户端浏览器将中文编码发送到服务器过程中无乱码问题,后来查找资料: 首先要告诉数据库要插入的字符串的字符集,mysql 默认使用的字符集是 latin1.我要保存的字符串是 UTF-8 编码的(字符集是 Unicode),所以包含这个字段的表应该使用 UTF-8 编码. 这里有几种解决办法. 1.在建立数据库的时候指定数据库的字符集编码,这样,这个数据库的所有表都会默认使用数据库的字符集编码

Oracle数据转移Mysql中遇到的问题以及解决办法

前几天因工作需要我得将Oracle数据库中几十张表转移到Mysql中,由于之前没有相关经验,上网简单百度后选用Navcat Premium软件工作. Navcat Premium进行数据转移有三种办法:1.复制表  2.导出.导入数据  3.导出成sql脚本,执行. 一开始使用复制表的方法,打开菜单栏"工具"的数据传输功能,左边选择要复制的表,右边选择连接然后选中目标数据库,接下在就是next by next的一键式操作.这个方法真的很方便,但是bug也很多,最大的bug是数值类型不匹

pandas 读取带文件头的数据。并且分隔符用s+

df = pd.read_table("8.txt",skiprows=7,sep="\s+") s+可以将tab和多个空格都当成一样的分隔符.skiprows代表忽略文件开始的7行注释之类内容.

如何通过PHP将excel的数据导入MySQL中

在开发PHP程序时,很多时候我们会有将数据批量导入数据库的需求,如学生信息批量添加到数据库中,而事先用excel编排好,对excel实行操作,便是我们比较常用的选择方式. 在对excel的操作中,phpExcelReade便是很多人的共同选择.在具体实现中,我们可以以文件上传方式将excel文件上传到服务器中的某个位置,通过以下操作将excel中的数据导入到数据库后,在将上传的文件删除即可. 代码如下: $dir=dirname(__FILE__); //获取当前脚本的绝对路径 $dir=str

详解用Navicat工具将Excel中的数据导入Mysql中

第一步:首先需要准备好有数据的excel: 第二步:选择"文件"->"另存为",保存为"CSV(逗号分隔)(*.csv)",将excel表另存为csv文档  第三步:(很重要):如果你的数据中有中文,那么需要将CSV文件处理一下,负责会导入失败:用editplus或者其他编辑器(另存时可以选择保存编码的编辑器)打开CSV文件,然后另存为,选择utf-8(你的数据库也是utf-8哦),点击保存. 第四步:开始导入了,使用mysql图形化工具(

execl数据导入mysql中

因为分类过多,不可能一一复制,将分类数据导入ecshop的 ecs_category表中. 1.制作与ecs_catergory表数据一样的结构,本过程中遇到问题, a.execl中多行数据值为同一个值? 利用快捷键ctrl+d可实现多行数据相同 b.占有多行的数据,将其变为占有一行. 从execl中复制该列,黏贴到一个新建的.txt中处理. c.按顺序自动填充数字 鼠标放到单元格的右下角,出现一个十字的填充柄,下拉即可. d.去掉重复的行 通过自动筛选去除 e.word文档去除空行 http:

将数据存入mysql中

import pymysql import warnings # 忽略警告 warnings.filterwarnings("ignore") # 连接数据库 db = pymysql.connect("localhost", 'root', "123456", charset="utf8") # 创建游标 cursor = db.cursor() # 创建数据库,如果存在,就不创建 c_db = "create d