关键词

详解pandas.DataFrame.to_sql()(将数据框写入SQL数据库)函数使用方法

pandas.DataFrame.to_sql()函数可以将数据写入SQL数据库中,其用法如下所示:

DataFrame.to_sql(name, con[, schema, if_exists, index, index_label, chunksize, dtype])

其中,参数含义如下:

  • name:表名或者SQL语句。
  • con:SQLAlchemy连接对象或者字符串,表示数据库连接。
  • schema:可选参数,字符串,表示要使用的schema。
  • if_exists:可选参数,字符串,默认是"fail"。如果该表存在,那么该参数可以控制覆盖与否:"fail"表示不做处理;"replace"表示替换,即删除原来的表,重新创建一个新表;"append"表示追加到原有表中。
  • index:可选参数,bool类型,默认是True。是否将DataFrame的索引写入数据库表中。
  • index_label:可选参数,字符串类型,默认是None。索引字段的名称。
  • chunksize:可选参数,int类型,默认是None。将数据分块写入数据库,一次写入多少行。
  • dtype:可选参数,字典类型,默认是None。将列名映射到SQL类型。

下面给出两个例子:

示例1:将DataFrame中的数据写入MySQL数据库

import pandas as pd
from sqlalchemy import create_engine

engine = create_engine('mysql+pymysql://user:password@localhost:3306/database_name')
df = pd.read_csv('data.csv')

df.to_sql(name='table_name', con=engine, if_exists='replace', index=False)

示例2:追加数据到已有的数据库表

from sqlalchemy import create_engine
import pandas as pd

engine = create_engine('mysql+pymysql://user:password@localhost:3306/database_name')

df_new = pd.read_csv('new_data.csv')
df_new.to_sql(name='table_name', con=engine, if_exists='append', index=False)

以上示例中,我们使用了SQLAlchemy中的create_engine()函数创建了一个MySQL数据库连接对象;然后使用pandas中的read_csv()函数读取csv文件中的数据;将数据分别写入到数据库中,实现了DataFrame数据到SQL数据库的导入。

本文链接:http://task.lmcjl.com/news/4574.html

展开阅读全文