pandas提供了读取与存储关系型数据库数据的函数与方法。
除了pandas库外,还需要使用SQLAlchemy库建立对 应的数据库连接。SQLAlchemy配合相应数据库的Python连接工具(例如MySQL数据库需要安装mysqlclient或者 pymysql库),使用create_engine函数,建立一个数据库连接。
from sqlalchemy import create_engine
## 创建一个mysql连接器,用户名为root,密码为123456,地址为127.0.0.1,数据库名称为testdb,编码为utf-8
engine = create_engine('mysql+pymysql://root:[email protected]:3306/testdb?charset=utf8')
print(engine)
#运行结果
#Engine(mysql+pymysql://root:***@127.0.0.1:3306/testdb?charset=utf8)
import pandas as pd
## 使用read_sql读取订单详情表
detail2 = pd.read_sql('select * from meal_order_detail3',con = engine)
print('使用read_sql函数+sql语句读取的订单详情表长度为:',len(detail2))
detail3 = pd.read_sql('meal_order_detail3',con = engine)
print('使用read_sql函数+表格名称读取的订单详情表长度为:',len(detail3))
#结果
#使用read_sql函数+sql语句读取的订单详情表长度为: 3611
#使用read_sql函数+表格名称读取的订单详情表长度为: 3611
detail2.to_sql('test1',con = engine,index = False,if_exists = 'replace')
## 使用read_sql读取test表
formlist1 = pd.read_sql_query('show tables',con = engine)
print('新增一个表格后testdb数据库数据表清单为:','\n',formlist1)
#新增一个表格后testdb数据库数据表清单为:
# Tables_in_testdb
# 0 meal_order_detail1
# 1 meal_order_detail2
# 2 meal_order_detail3
# 3 test1
2.文本文件读取
1.2 查改增删DataFrame数据
查:loc,iloc访问方式
DataFrame.loc[行索引名称或条件, 列索引名称]
改:更改DataFrame中的数据,原理是将这部分数据提取出来,重新赋值为新的数据。
##将order_id为458的,变换为45800
detail1.loc[detail1['order_id']=='458','order_id'] = '45800'
增:DataFrame添加一列的方法非常简单,只需要新建一个列索引。并对该索引下的数据进行赋值操作即可。 新增的一列值是相同的则直接赋值一个常量即可。
删:删除某列或某行数据需要用到pandas提供的方法drop,drop方法的用法如下。 axis为0时表示删除行,axis为1时表示删除列。