Python工具箱系列(二十三)

基于游标得操作

游标是数据库操作的相对底层的能力。简单的操作如下:

 import  mysql.connector  import  random

host
= ' localhost ' user = ' root ' password = ' 8848is8848 ' dbname = ' demodb ' def fakedata(maxtimes): # 连接数据库 demodb = mysql.connector.connect(
host
=host, user=user, password=password, database= dbname)
democur
= demodb.cursor() # 插入模拟出来的数据。 for _ in range(maxtimes):
pm25
= random.uniform(0, 300 )
insertsql
= f ' insert into demotb(pm25) values({pm25}) ' democur.execute(insertsql)

demodb.commit()
democur.close()
demodb.close()
def querydata(): # 连接数据库 demodb = mysql.connector.connect(
host
=host, user=user, password=password, database= dbname)
democur
= demodb.cursor() # 进行一个简单的查询,返回多个值 selsql = ' select pm25 from demotb where pm25 >50.0 ' democur.execute(selsql) for i in democur: print (i)
demodb.commit()
democur.close()
demodb.close()
def queryresult(): # 连接数据库 demodb = mysql.connector.connect(
host
=host, user=user, password=password, database= dbname)
democur
= demodb.cursor() # 进行一个简单的查询,返回多个值 selsql = ' select max(pm25) from demotb ' democur.execute(selsql)
result
= democur.fetchone() print (result)
demodb.commit()
democur.close()
demodb.close()


fakedata(
10 )
querydata()
queryresult()

上述操作是比较底层的,尤其是使用游标操作,只能够是遍历操作,然后依次处理数据。为此,需要引入更加抽象与高层的工具。

基于pandas的操作

pandas虽然字面意思是熊猫,但实际上它是一个强力的数据分析工具框架。网上对于pandas的介绍非常多,但笔者还是推荐直接看官方文档更好。使用pandas访问数据库的代码如下:

 

 import  mysql.connector  import  pandas as pd

host
= ' localhost ' user = ' root ' password = ' 8848is8848 ' dbname = ' demodb ' def querydata(): # 连接数据库 demodb = mysql.connector.connect(
host
=host, user=user, password=password, database= dbname) # 进行一个简单的查询,返回多个值 selsql = ' select pm25 from demotb where pm25 >50.0 ' listpd = pd.read_sql(selsql, demodb)
demodb.close()
print (listpd)


querydata()

 

此时返回的输出结果如下所示:

 pm25
0
80.6221 1 192.4580 2 291.4450 3 279.8550 4 92.3528 5 107.4040 6 144.2040 7 213.5120 8 226.6060

如下所示,pandas使用DataFrame来管理记录,其输出本身就具有表格的特性,与数据库表也很相似,理解与操作起来非常方便。

 

  在新版本的pandas中,上述代码会引起警告,建议改成SQLAlchemy connectable(engine/connection),后续代码将引入这种升级的连接方式。

 

标签: python

添加新评论