一、读/写数据库数据
1、SQLAlchemy连接MySQL数据库
from sqlalchemy import create_engine
engine = create_engine('mysql+pymysql://root:1234@127.0.0.1:\
3306/testdb?charset=utf8')
print(engine)
Engine(mysql+pymysql://root:***@127.0.0.1:3306/testdb?charset=utf8)
2、使用read_sql_query、read_sql_table、read_sql函数读取数据库数据
import pandas as pd
formlist = pd.read_sql_query('show tables', con=engine)
print('testdb数据库数据表清单为:', '\n', formlist)
detail1 = pd.read_sql_table('meal_order_detail1', con=engine)
print('使用read_sql_table读取订单详情表的长度为:', len(detail1))
detail2 = pd.read_sql('select * from meal_order_detail2',
con=engine)
print('使用read_sql函数+sql语句读取的订单详情表长度为:', len(detail2))
detail3 = pd.read_sql('meal_order_detail3', con=engine)
print('使用read_sql函数+表格名称读取的订单详情表长度为:',
len(detail3))
testdb数据库数据表清单为:
Tables_in_data_analysis
0 meal_order_detail1
1 meal_order_detail2
2 meal_order_detail3
使用read_sql_table读取订单详情表的长度为: 2779
使用read_sql函数+sql语句读取的订单详情表长度为: 3647
使用read_sql函数+表格名称读取的订单详情表长度为: 3611
3、使用to_sql方法写入数据
detail1.to_sql('test1', con=engine, index=False,
if_exists='replace')
formlist1 = pd.read_sql_query('show tables', con=engine)
print('新增一个表格后testdb数据库数据表清单为:', '\n', formlist1)
新增一个表格后testdb数据库数据表清单为:
Tables_in_data_analysis
0 meal_order_detail1
1 meal_order_detail2
2 meal_order_detail3
3 test1
二、读/写文本文件
1、使用read_table、read_csv函数读取菜品订单信息表
order = pd.read_table('../data/meal_order_info.csv',
sep=',', encoding='gbk')
print('使用read_table读取的订单信息表的长度为:', len(order))
order1 = pd.read_csv('../data/meal_order_info.csv',
encoding='gbk')
print('使用read_csv读取的订单信息表的长度为:', len(order1))
使用read_table读取的订单信息表的长度为: 945
使用read_csv读取的订单信息表的长度为: 945
2、更改参数读取菜品订单信息表
order2 = pd.read_table('../data/meal_order_info.csv',
sep=';', encoding='gbk')
print('分隔符为;时订单信息表为:\n', order2)
order3 = pd.read_csv('../data/meal_order_info.csv',
sep=',', header=None, encoding='gbk')
print('订单信息表为:', '\n', order3)
order4 = pd.read_csv('../data/meal_order_info.csv',
sep=',', encoding='gbk')
分隔符为;时订单信息表为:
info_id,"emp_id","number_consumers","mode","dining_table_id","dining_table_name","expenditure","dishes_count","accounts_payable","use_start_time","check_closed","lock_time","cashier_id","pc_id","order_number","org_id","print_doc_bill_num","lock_table_info","order_status","phone","name"
0 417,1442,4,NA,1501,1022,165,5,165,"2016/8/1 11...
1 301,1095,3,NA,1430,1031,321,6,321,"2016/8/1 11...
2 413,1147,6,NA,1488,1009,854,15,854,"2016/8/1 1...
[945 rows x 1 columns]
订单信息表为:
0 1 2 3 4 \
0 info_id emp_id number_consumers mode dining_table_id
1 417 1442 4 NaN 1501
2 301 1095 3 NaN 1430
[946 rows x 21 columns]
3、使用to_csv函数将数据写入CSV文件中
import os
print('订单信息表写入文本文件前目录内文件列表为:\n',
os.listdir('../tmp'))
order.to_csv('../tmp/orderInfo.csv', sep=';', index=False)
print('订单信息表写入文本文件后目录内文件列表为:\n',
os.listdir('../tmp'))
订单信息表写入文本文件前目录内文件列表为:
[]
订单信息表写入文本文件后目录内文件列表为:
['orderInfo.csv']
三、读/写Excel文件
1、使用read_excel函数读取菜品订单信息表
user = pd.read_excel('../data/users.xlsx')
print('客户信息表长度为:', len(user))
客户信息表长度为: 734
2、使用to_excel函数将数据储存为Excel文件
print('客户信息表写入excel文件前目录内文件列表为:\n',
os.listdir('../tmp'))
user.to_excel('../tmp/userInfo.xlsx')
print('客户信息表写入excel文件后目录内文件列表为:\n',
os.listdir('../tmp'))
客户信息表写入excel文件前目录内文件列表为:
[ 'orderInfo.csv']
客户信息表写入excel文件后目录内文件列表为:
['orderInfo.csv', 'userInfo.xlsx']
四、案例操作
1、读取订单详情表
from sqlalchemy import create_engine
import pandas as pd
engine = create_engine('mysql+pymysql://root:1234@127.0.0.1:\
3306/testdb?charset=utf8')
order1 = pd.read_sql_table('meal_order_detail1', con=engine)
print('订单详情表1的长度为:', len(order1))
order2 = pd.read_sql_table('meal_order_detail2', con=engine)
print('订单详情表2的长度为:', len(order2))
order3 = pd.read_sql_table('meal_order_detail3', con=engine)
print('订单详情表3的长度为:', len(order3))
订单详情表1的长度为: 2779
订单详情表2的长度为: 3647
订单详情表3的长度为: 3611
2、读取订单信息表
orderInfo = pd.read_table('../data/meal_order_info.csv',
sep=',', encoding='gbk')
print('订单信息表的长度为:', len(orderInfo))
订单信息表的长度为: 945
3、读取客户信息表
userInfo = pd.read_excel('../data/users.xlsx',
sheet_name='users1')
print('客户信息表的长度为:', len(userInfo))
客户信息表的长度为: 734