这篇文章将为大家详细讲解有关pandas DataFrame.to_sql()用法小结,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
Pandas DataFrame.to_sql() 用法小结
简介
to_sql()
方法将 Pandas DataFrame 写入关系型数据库管理系统 (RDBMS) 中。它通过 SQLAlchemy 库连接到数据库,提供一种方便的方法来将数据持久化到数据库表中。
语法
DataFrame.to_sql(name, con, schema=None, if_exists="fail", index=True, index_label=None, chunksize=None, dtype=None)
参数
- name: 输出表的名称
- con: 连接到数据库的 SQLAlchemy 引擎或 URL
- schema: 输出表的模式,默认为 None,表示使用默认模式
- if_exists: 指定如果表已存在时的行为:
"fail"
: 抛出异常"replace"
: 替换现有表"append"
: 将数据追加到现有表
- index: 是否将 DataFrame 索引作为输出表的附加列写入。默认为 True
- index_label: 索引列的名称,默认为 None,表示使用默认名称
- chunksize: 写入数据库时的行块大小,以降低内存消耗。默认为 None,表示不分块写入
- dtype: 将 DataFrame 列类型转换为数据库类型。默认为 None,表示使用 SQLAlchemy 默认类型转换
用法示例
连接到 PostgreSQL 数据库并写入 DataFrame:
import pandas as pd
import sqlalchemy
engine = sqlalchemy.create_engine("postgresql://user:password@host:port/database")
df = pd.DataFrame({"name": ["Alice", "Bob", "Carol"], "age": [20, 25, 30]})
df.to_sql("people", engine)
将数据追加到现有表:
df.to_sql("people", engine, if_exists="append")
写出 DataFrame 索引作为附加列:
df.to_sql("people", engine, index=True)
指定输出表的模式:
df.to_sql("people", engine, schema="my_schema")
分块写入数据,降低内存消耗:
df.to_sql("people", engine, chunksize=1000)
自定义列类型转换:
dtype = {"name": sqlalchemy.String(255), "age": sqlalchemy.Integer()}
df.to_sql("people", engine, dtype=dtype)
提示
- 使用
if_exists="fail"
确保在表不存在时才创建它。 - 对于大型 DataFrame,使用
chunksize
来避免内存错误。 - 指定
dtype
以确保正确的数据库类型转换。 - 使用
index=True
和index_label
来控制输出表的索引列。
以上就是pandas DataFrame.to_sql()用法小结的详细内容,更多请关注编程学习网其它相关文章!