使用python将DataFrame数据写入mysql:pand
2020-10-11 本文已影响0人
我住永安当
官方文档
pandas.Series.to_sql
pandas.DataFrame.to_sql
1.pandas.Series.to_sql
Python Pandas pandas.DataFrame.to_sql函数方法的使用
Series.to_sql(name, con, schema=None, if_exists='fail', index=True, index_label=None, chunksize=None, dtype=None, method=None)
- name:数据库表名
- con:连接sql数据库的engine,常用sqlalchemy.create_engine()
- schema:指定架构(如果数据库支持)。如果为None,请使用默认架构。
- if_exists='fail':{'fail','replace','append'},默认'fail'。如果表已存在的情况如下,
fail:引发ValueError。replace:在插入新值之前删除表。append:将新值插入现有表。 - index:布尔值,默认为True。将DataFrame索引写为列。使用index_label作为表中的列名。
- index_label:索引列的列标签。如果给出None(默认)且 index为True,则使用索引名称。
- chunksize:行将一次批量写入的数量。默认情况下,所有行都将立即写入。
- dtype:指定列的数据类型。键应该是列名,值应该是SQLAlchemy类型,或sqlite3传统模式的字符串。虽然pandas被强制将数据存储为浮点数,但数据库支持可空整数。使用Python获取数据时,我们会返回整数标量。
2.pandas.DataFrame.to_sql
- name:数据库表名
- con:连接sql数据库的engine,常用sqlalchemy.create_engine()
- schema:指定架构(如果数据库支持)。如果为None,请使用默认架构。
- if_exists='fail':{'fail','replace','append'},默认'fail'。如果表已存在的情况如下,
fail:引发ValueError。replace:在插入新值之前删除表。append:将新值插入现有表。 - index:布尔值,默认为True。将DataFrame索引写为列。使用index_label作为表中的列名。
- index_label:索引列的列标签。如果给出None(默认)且 index为True,则使用索引名称。
- chunksize:行将一次批量写入的数量。默认情况下,所有行都将立即写入。
- dtype:指定列的数据类型。键应该是列名,值应该是SQLAlchemy类型,或sqlite3传统模式的字符串。虽然pandas被强制将数据存储为浮点数,但数据库支持可空整数。使用Python获取数据时,我们会返回整数标量。
- method:{None, ‘multi’, callable} None:使用标准的SQL INSERT子句(每行一个)。‘multi’:在单个INSERT子句中传递多个值。callable:带签名的可调用(pd_table、conn、keys、data-iter)。
DataFrame.to_sql(name, con, schema=None, if_exists='fail', index=True, index_label=None, chunksize=None, dtype=None, method=None)
#将数据存入数据库
engine = create_engine('mysql://XXXXX:XXXXXXX@XXX.XX.XXX.XXX:3306/XXX?charset=gbk')
overall_sales_performance.to_sql('pt_overall_sale_performance_1',con=engine,if_exists='replace',index=False)
image.png