pandas to_sql
-mysql%E6%95%B0%E6%8D%AE%E5%BA%93.png&w=3840&q=85)
df类型直接保存到sql,比较方便的方法
import numpy as npimport pandas as pdfrom sqlalchemy import create_engineconnect = create_engine('mysql+pymysql://root:123456@127.0.0.1:3306/StocksHistoryData?charset=utf8mb4')pd.io.sql.to_sql(stock_info_a_code_name_df, 'AllStockNo', connect, index=False, chunksize = None, if_exists='append')
| 参数 |
解释 |
| name:string |
SQL表的名称。 |
| con:sqlalchemy.engine.Engine或sqlite3.Connection |
使用SQLAlchemy可以使用该库支持的任何数据库。为sqlite3.Connection对象提供了旧版支持。 |
| schema:string,optional |
指定架构(如果数据库支持)。如果为None,请使用默认架构。 |
| if_exists:{‘fail’,’replace’,’append’},默认’fail’ |
如果表已存在的情况如下,fail:引发ValueError。replace:在插入新值之前删除表。append:将新值插入现有表。 |
| index:布尔值,默认为True |
将DataFrame索引写为列。使用index_label作为表中的列名。 |
| index_label:字符串或序列,默认为None |
索引列的列标签。如果给出None(默认)且 index为True,则使用索引名称。如果DataFrame使用MultiIndex,则应该给出一个sequence。 |
| chunksize:int,可选 |
行将一次批量写入的数量。默认情况下,所有行都将立即写入。 |
| dtype:dict,可选 |
指定列的数据类型。键应该是列名,值应该是SQLAlchemy类型,或sqlite3传统模式的字符串。 |
不一定可以
import pandas as pdimport pymysqlimport sqlalchemy#连接MYSQL数据库db = pymysql.connect(host='127.0.0.1',user='root',password='123456',db='StocksHistoryData',port=3306,charset='utf8')df.to_sql(name='table', con=con, if_exists='append', index=False, dtype={'col1':sqlalchemy.types.INTEGER(), 'col2':sqlalchemy.types.NVARCHAR(length=255), 'col_time':sqlalchemy.DateTime(), 'col_bool':sqlalchemy.types.Boolean })