广告
返回顶部
首页 > 资讯 > 数据库 >读取或存储DataFrames的数据到mysql中
  • 410
分享到

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

mysql数据库python 2023-09-14 22:09:52 410人浏览 八月长安
摘要

如何把DataFrames数据存入数据库中,以Mysql为例进行说明 保存DataFrames到数据库 1. 创建数据库连接 import pymysqlfrom sqlalchemy import

如何把DataFrames数据存入数据库中,以Mysql为例进行说明

保存DataFrames到数据库

1. 创建数据库连接

import pymysqlfrom sqlalchemy import create_engine# 创建数据库连接engine = create_engine('mysql+pymysql://username:passWord@host:port/database')

username是数据库用户名,password是数据库密码,host是数据库主机名,本地即为localhostport是数据库端口号(默认为3306),database是要连接的数据库名。

2. 获取数据库连接对象

engine = create_engine(db_connection_string)

3. 将DataFrames信息写入数据库中

使用to_sql() 将数据写入到关系型数据库中的表中。

# 要写入的数据data = pd.DataFrame({'col1': [1, 2, 3], 'col2': ['A', 'B', 'C']})data.to_sql("data", engine, if_exists='append', index=False)print('写入成功')

to_sql() 语法如下:

DataFrame.to_sql(name, con, schema=None, if_exists='fail', index=True, index_label=None, chunksize=None, dtype=None, method=None)

参数说明:

name:要写入的目标表名。
con:已经创建好的数据库连接对象,可以是 SQLAlchemy 的引擎对象或数据库连接字符串
schema:可选参数,要写入的目标表所属的数据库模式(schema)。
if_exists可选参数,指定写入时的行为。可选值包括 ‘fail’(默认,如果表已存在则抛出异常)‘replace’(如果表已存在则替换)‘append’(如果表已存在则追加)
index:可选参数,指定是否将 DataFrame 的索引写入到数据库表中,默认为 True。
index_label:可选参数,指定索引列的列名,默认为 None。
chunksize:可选参数,指定分批写入的大小。如果指定了该参数,将按照指定的大小将数据分批写入数据库,有助于处理大量数据。
dtype:可选参数,指定要写入的列的数据类型。它可以是字典、numpy.dtype 对象或 SQLAlchemy 的 TypeEngine 对象。
method:可选参数,指定写入数据的方法。可选值包括 ‘multi’(默认,使用多个插入语句)或 ‘single’(使用单个大插入语句)。

注意:

如果设置if_exists='replace',那么所执行的逻辑为:将数据库中已存在的表删除,并创建一个新的表。在实际项目环境中,是无法随意进行删库 操作的,所以推荐使用if_exists='append',如果需要多次执行,在每次写入数据前,先将该表中所有数据进行删除,再重新写入。

4.关闭连接对象

# 关闭连接对象engine.dispose()

在完成数据库操作后,需要调用 engine.dispose() 来关闭数据库连接

完整代码

import pymysqlfrom sqlalchemy import create_engine# 创建数据库连接engine = create_engine('mysql+pymysql://username:password@host:port/database')# 定义一个函数写入数据中def data_to_sql():    # 获取数据库连接对象    engine = create_engine(db_connection_string)    # 获取数据    period = find_data()    period.to_sql("data", con=engine, if_exists='append', index=False)    print('写入成功')    # 关闭连接对象    engine.dispose()

从数据库获取数据

# 从数据库中拿数据def get_data(start, end):    # 从缓存数据库中获取调拨数据    # 创建数据库连接    # 获取数据库连接对象    conn = create_engine(db_connection_string)# 使用参数绑定日期格式在 SQL 查询中选择指定日期范围内的数据    sql = "SELECT period  FROM `order_period` WHERE txdate BETWEEN {} AND {};"    .fORMat(start, end)    # 使用 pandas 的 read_sql 函数分块读取数据到 DataFrame 中    chunks = pd.read_sql(sql, conn)    # 关闭数据库连接    conn.dispose()    return chunks

在读取数据时,使用startend两个参数绑定日期范围,在 SQL 查询中选择指定日期范围内的数据。

来源地址:https://blog.csdn.net/Sherlee1213/article/details/130642392

您可能感兴趣的文档:

--结束END--

本文标题: 读取或存储DataFrames的数据到mysql中

本文链接: https://www.lsjlt.com/news/407840.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作