百木园-与人分享,
就是让自己快乐。

Python 利用Pandas把数据直接导入Mysql

前言

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理。

PS:如有需要Python学习资料的小伙伴可以点击下方链接自行获取

Python免费学习资料、代码以及交流解答点击即可加入

 

需要把txt文件数据导入mysql数据库,中间需要经过一些数据处理,在经过相关查找后,pandas自带的to_sql(),可以实现把DataFrame直接导入数据库。

虽然mysql有其他的方式导入数据,但是在导入前需要对数据进行一些处理,这些任务无法完成,所以可以借助python来一步实现所有需求。

pandas在处理表格数据有很多优点:API多比较方便、速度快;可循环每行,对每个值进行处理;也可对整列进行处理等

在导入数据库时用的是如下API:Pandas.DataFrame.to_sql()

参数介绍及注意事项

官方文档:[https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.to_sql.html]

DataFrame.to_sql(name, con, schema=None, if_exists=\'fail\', index=True, index_label=None, chunksize=None, dtype=None, method=None)常用参数:

  • name:导入到mysql时表的名字如果mysql里面已经用CREATE TABLE创建好了表,那么就是该表名字如果mysql没有创建好表,那么可以自己起一个合适的表名
  • con:数据库连接,需要安装sqlalchemy库,目前仅支持sqlalchemy库创建的连接,pymysql库创建的连接不支持

engine = create_engine(\"mysql+pymysql://root:z123456@127.0.0.1:3306/routeapp?charset=utf8\")
2#SQLALCHEMY_DATABASE_URI = \'%s+%s://%s:%s@%s:%s/%s\' % (DB_TYPE, DB_DRIVER, DB_USER,DB_PASS, DB_HOST, DB_PORT, DB_NAME)

  • if_exists:以下三个选项,是如果数据库里面已经存在该表的意思\"fail\":直接报错,不再操作,类似mysql创建表时的IF NOT EXISTS才创建表\"replace\":先删除该表,然后再创建\"append\":直接在表后面添加数据
  • index:bool是否把DataFrame的索引列写入表中
  • index_label:如果要把DataFrame的索引列写入表中,那么需要给出该索引列的名字,如果没给的话,那就会用DataFrame的列索引名注意事项:con 参数一定要仔细核对,否则数据库会连接失败,可参照上面给出的例子按自己的实际数据库位置进行更改

案例

首先电脑上已安装:mysql软件、sqlalchemy库、pandas库

现在有一些城市之间的火车车次信息,需要导入数据库

import pandas as pd
data=pd.read_table(\'./data_pandas.txt\')
data.head()

Python 利用Pandas把数据直接导入Mysql

来源:https://www.cnblogs.com/python147/p/14523486.html
图文来源于网络,如有侵权请联系删除。

未经允许不得转载:百木园 » Python 利用Pandas把数据直接导入Mysql

相关推荐

  • 暂无文章