2003031139——朱星南——Python数据分析第七周作业——MySQL的安装以及使用
| 项目 | 内容 |
| 课程班级博客链接 | 20级数据班 |
| 这个作业要求链接 | python数据分析与应用第七周作业 |
| 博客名称 | 2003031139—朱星南—Python数据分析第七周作业—MySQL的安装以及使用 |
| 要求 |
每道题要有题目,代码(使用插入代码,不会插入代码的自己查资料解决,不要直接截图代码!!),截图(只截运行结果)。 |
1.安装好MySQL,连接上Navicat。
2.完成课本练习(代码4-1~3/4-9~31)。
在PyCharm中运行代码,出现错误,原因是没有下sqlalchemy模块,下好之后运行成功
from sqlalchemy import create_engine
#连接数据库
engine=create_engine("mysql+pymysql://root:root@127.0.0.1:3306/testdb?charset=utf8")
print(engine)
#用pandas查看数据库里面的表
import pandas as pd
formlist=pd.read_sql_query('show tables',con=engine)
print(formlist)
formlist1=pd.read_sql_table('meal_order_detail1',con=engine)
print(formlist1)
#使用read_sql_table读取订单详情
detail1 = pd.read_sql_table('meal_order_detail1',con = engine)
print('使用read_sql_table读取订单详情表的长度为:',len(detail1))
#使用read_ sql读取订单详情表
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_sq1函数+表格名称读取的订单详情表的长度为:',len(detail3))
detail1.to_sql('test1',con = engine,index = False,if_exists = 'replace')
formlist1 = pd.read_sql_query('show tables',con = engine)
print('新增一个表格后.testdb数据库表清单为:‘,''\n',formlist1)

#连接数据库
import pandas as pd
engine=create_engine("mysql+pymysql://root:root@127.0.0.1:3306/testdb?charset=utf8")
#用pandas查看数据库里面的表
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(order1))
order3 = pd.read_sql_table('meal_order_detail3',con = engine)
print('订单表3的长度:',len(order1))
#读取users.xlsx文件
userInfo = pd.read_excel('D://360安全浏览器下载//users.xlsx')
print(userInfo)
#使用read table 读取订单信息表
orderInfo = pd.read_table("D:/桌面/meal_order_info .csv",sep =',',encoding ='utf-8')
print('订单信息表的长度为: ',len(orderInfo))

from sqlalchemy import create_engine
#连接数据库
import pandas as pd
engine=create_engine("mysql+pymysql://root:root@127.0.0.1:3306/testdb?charset=utf8")
detail= pd.read_sql_table('meal_order_detail1',con = engine)
print('订单详情表的索引为: ',detail.index)
print('订单表所有值为:','\n',detail.values)
print('订单表列名为:','\n',detail.columns)
print('订单表数据类型为:','\n',detail.dtypes)
#查看dataframe的元素个数
print('订单表的元素个数为:','\n',detail.size)
print('订单表维度数为:','\n',detail.ndim)
print('订单表形状为:','\n',detail.shape)
print('订单表转置前形状为:','\n',detail.shape)
print('订单表转置后形状为:','\n',detail.T.shape)
#使用字典访问的方式取出orderInfo中的某-列
order_id = detail['order_id']
print('订单详情表中的order_id 的形状为:","\n',order_id.shape)
#使用访问属性的方式取出orderInfo中的菜品名称列
dishes_name=detail.dishes_name
print('订单详情表中的dishes_ name 的形状为:' ,dishes_name .shape)
dishes_name5 = detail[ 'dishes_name'] [:5]
print ('订单详情表中的dishes_ name前5个元素为: ', '\n',dishes_name5)
orderDish = detail[['order_id','dishes_name']][:5]
print ('订单详情表中的order_id和dishes_name前5个元素为: ', '\n',orderDish)
order5 = detail[:][1:6]
print('订单详情表的1-6行元素为', '\n',order5)
print('订单详情表的前五行数据为', '\n',detail.head())
print('订单详情表的后五行数据为', '\n',detail.tail())
print('订单详情表的前五行数据为', '\n',detail.head())
dishes_name1 = detail.loc[:,'dishes_name']
print('使用loc提取dishes_name列的size为', dishes_name1.size)
dishes_name2 = detail.iloc[:,3]
print('使用iloc提取第三列的size为', dishes_name2.size)
dishes = detail.loc[:,'dishes_name']
print('使用loc提取dishes_name列的size为', dishes_name1.size)
orderDish1 = detail.loc[ :, [ 'order_id','dishes_name']]
print('使用 loc 提取 order_id 和 dishes_name列的 size为:',orderDish1.size)
print('列名为order_id和dishes_name的行名为3的数据为: \n',detail.loc[3,['order_id','dishes_name']])
print('列名为order_id和dishes_name的行名为2,3,4,5,6的数据为:\n',detail.loc[2:6,['order_id','dishes_name']])
print('列位置为1和3,,行位置为3的数据为:\n',detail.iloc[3,[1,3]])
print('列位置为1和3,,行位置为2,3,4,5,6的数据为:\n',detail.iloc[2:7,[1,3]])
#loc内部传入表达式
print('detail中order_id为458的dishes_name为:\n',detail.loc[detail['order_id']=='458',['order_id','dishes_name']])
#错误示例如下:
#print('detail中order_id为458的第1、5列数据为:\n',detail.iloc[detail['order_id']=='458',[1,5]])
print('detail中order_id为458的第1,5列数据为:\n',detail.iloc[(detail['order_id']=='458').values,[1,5]])
print('列名为dishes_name行名为 2,3,4,5,6的数据为:\n',detail.loc[2:6,'dishes_name'])
print('列位置为5,行位置为2~6的数据为:\n',detail.iloc[2:6,5])
#print('列位置为5,行名为2~6的数据为:', '\n',detail.ix[2:6,5]) #pandas的1.0.0版本后,已经对ix进行了升级和重构。
#将order_id为458的变换为45800
detail.loc[detail['order_id']=='458','ordeer_id'] = '45800'
print('更改后detail中order_id为458的order_id为:\n',detail.loc[detail['order_id']=='458','order_id'])
print('更改后detail中order_id为45800的order_id为:\n',detail.loc[detail['order_id']=='45800','order_id'])
detail['payment'] = detail['counts']*detail['amounts']
print('detail新增列payment的前5行为:','\n',detail['payment'].head())
detail['pay_way'] = '现金支付'
print('detail新增列pay_way的前5行为:','\n',detail['pay_way'].head())
print('删除pay_way前detail的列索引为:','\n',detail.columns)
detail.drop(labels = 'pay_way',axis = 1,inplace = True)
print('删除pay_way后detail的列索引为:','\n',detail.columns)
print('删除1~10行前detail的长度为:',len(detail))
detail.drop(labels = range(1,11),axis = 0,inplace = True)
print('删除1~10行后detail的长度为:',len(detail))








浙公网安备 33010602011771号