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数据库的导入。
本文链接:https://my.lmcjl.com/post/20094.html
展开阅读全文
4 评论