本次分享将介绍如何在Python中使用Pandas库读写MySQL数据库。首先,我们需要了解一些ORM知识。ORM技术Object-RelationalMapping技术,即ORM(Object-RelationalMapping)技术,是指将关系数据库的表结构映射到一个对象,通过使用描述对象与数据库之间映射关系的元数据,对象在程序中自动持久化到关系数据库中。在Python中,最著名的ORM框架是SQLAlchemy。Java中典型的ORM中间件有:Hibernate、ibatis、speedframework。SQLAlchemySQLAlchemy是Python编程语言下的一款开源软件。提供SQL工具包和对象关系映射(ORM)工具,在MIT许可下发布。可以使用pip命令安装SQLAlchemy模块:pipinstallsqlalchemySQLAlchemy模块提供了create_engine()函数来初始化数据库连接,SQLAlchemy使用字符串表示连接信息:'数据库类型+数据库驱动名://用户名:密码@机器地址:端口号/数据库名'Pandas读写MySQL数据库我们需要以下三个库来实现Pandas读写MySQL数据库:pandassqlalchemypymysql其中pandas模块提供了read_sql_query()函数来实现查询数据库,to_sql()函数实现了写入数据库不需要新建MySQL数据表。sqlalchemy模块实现与不同数据库的连接,pymysql模块实现Python操作MySQL数据库。我们将使用mydb数据库和MySQL数据库中的员工表。内容如下:8-*-#导入必要模块importpandasasdfromsqlalchemyimportcreate_engine#初始化数据库连接,使用pymysql模块#MySQL用户:root,密码:147369,端口:3306,数据库:mydbengine=create_engine('mysql+pymysql://root:147369@localhost:3306/mydb')#查询语句,选择employee表中的所有数据sql='''select*fromemployee;'''#read_sql_query两个参数:sql语句,数据库连接df=pd.read_sql_query(sql,engine)#输出employee表的查询结果print(df)#在pandas中创建一个DataFrame,只有id,num两列df=pd.DataFrame({'id':[1,2,3,4],'num':[12,34,56,89]})#将新建的DataFrame存储为MySQL中的数据表,不存储索引列df.to_sql('mydf',engine,index=False)print('ReadfromandwritetoMysqltablesuccessfully!')程序运行结果如下:查看MySQL中的mydf表程序运行结果:mydf表这说明我们确实写了将pandas中的新DataFrame导入MySQL!将CSV文件写入MySQL上面的例子实现了使用Pandas库读写MySQL数据库。我们将介绍另一个示例:将CSV文件写入MySQL。示例mpg.CSV文件前10行如下:mpg.CSV文件示例前10行Python代码如下:#-*-coding:utf-8-*-#Importnecessarymodulesimportpandasapdromsqlalchemyimportcreate_engine#初始化数据库连接,使用pymysql模块engine=create_engine('mysql+pymysql://root:147369@localhost:3306/mydb')#读取本地CSV文件df=pd.read_csv("E://mpg.csv",sep=',')#will新建的DataFrame在MySQL中存储为数据表,不存储索引列df.to_sql('mpg',engine,index=False)print("WritetoMySQLsuccessfully!")查看MySQL中的mpg表:mpg表在MySQL中仅需5句Python代码就实现了将CSV文件写入MySQL,无疑简单方便,快捷高效!总结本文主要介绍了ORM技术和SQLAlchemy模块,并展示了两个Python程序实例,并介绍了如何使用Pandas库实现MySQL数据库读写程序本身并不难,关键是要多练习.
