使用pandas.DataFrame.to_sql 方法将csv文件内容写入数据库
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 or Connection) or sqlite3.Connection |
schema | 模式 |
if_exists | {‘fail’, ‘replace’, ‘append’}, default ‘fail’ |
index | 将DataFrame索引写为列。使用index_label作为表中的列名 |
index_label | 字符串或序列,默认为None索引列的列标签。如果给出None(默认)且 index为True,则使用索引名称。如果DataFrame使用MultiIndex,则应该给出一个sequence |
chunksize | 可选行将一次批量写入的数量。默认情况下,所有行都将立即写入 |
dtype | 可选指定列的数据类型。键应该是列名,值应该是SQLAlchemy类型,或sqlite3传统模式的字符串。 |
method | {None, ‘multi’, callable} |
代码如下:
import pandas as pd
from sqlalchemy import create_engine
代码如下:
engine = create_engine('mysql+pymysql://root:123456@localhost:3306/db_test', encoding="utf8")
df = pd.read_csv('data.csv')
df.to_sql(
name = 'table_name',
con = engine,
index = False,
if_exists = 'append'
)