导出数据 - df.to_sql() - mysql数据库
-mysql%E6%95%B0%E6%8D%AE%E5%BA%93.png&w=1920&q=85)
df类型直接保存到sql,比较方便的方法
import numpy as np
import pandas as pd
from sqlalchemy import create_engine
connect = 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 pd
import pymysql
import 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
})