to_sql用法
时间: 2023-08-11 20:05:48 浏览: 50
to_sql 是 pandas DataFrame 对象的一个方法,用于将 DataFrame 存储到数据库中。它的基本语法如下:
```python
DataFrame.to_sql(name, con, schema=None, if_exists='fail', index=True, index_label=None, chunksize=None, dtype=None, method=None)
```
其中,各参数的含义如下:
- name:要写入数据库的表名。
- con:数据库连接对象,可以是 sqlalchemy.engine.Engine 或者 sqlalchemy.engine.Connection。
- schema:要写入的数据库 schema,默认为 None。
- if_exists:指定当表已经存在时的行为,默认为 'fail',表示不覆盖原表;其它选项为 'replace' 和 'append'。
- index:是否将 DataFrame 的索引写入数据库,默认为 True。
- index_label:索引列的列名,默认为 None。
- chunksize:每次写入数据库的行数,默认为 None,表示将整个 DataFrame 一次性写入数据库。
- dtype:指定写入数据库的数据类型,可以是 Python 中的 dict 或 sqlalchemy 类型。
- method:指定写入数据库的方法,可以是 'multi' 或 'single',默认为 None,表示自动选择。
示例代码:
```python
import pandas as pd
from sqlalchemy import create_engine
# 创建数据库连接
engine = create_engine('postgresql://user:password@host:port/database')
# 创建 DataFrame 对象
df = pd.DataFrame({'name': ['Alice', 'Bob'], 'age': [25, 30]})
# 将 DataFrame 写入数据库
df.to_sql('mytable', con=engine, if_exists='replace', index=False)
```
上述示例代码将 DataFrame 存储到了名为 'mytable' 的表中。如果该表已经存在,会先将其删除后再写入 DataFrame。