• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

sunyuemei123

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

2003031130-孙月梅-python数据分析第七周作业

项目 要求
课程班级博客链接 20级数据班(本)
这个作业要求链接 python数据分析第七周作业
博客名称 2003031130-孙月梅-python数据分析第七周作业
要求

每道题要有题目,代码(使用插入代码,不会插入代码的自己查资料解决,不要直接截图代码!!),截图(只截运行结果)。

 

任务:

  • 1.安装好MySQL,连接上Navicat。
  • 2.完成课本练习(代码4-1~3/4-9~31)。
  • from sqlalchemy import create_engine#创建一个MySQL连接器,用户名为root,密码为root#地址为27.0.0.1,数据库名称为textdb,编码为utf_8
    engine=create_engine('mysql+pymysql://root:root@127.0.0.1:3306/testdb?charset=utf8')
    print(engine)
    
    
    import pandas as pd
    #使用read_sql_query查看testdb中的数据表数目
    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_query读取清单的长度为:",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函数+SQL语句读取的订单详情表长度为:',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)

    detail1.to_sql('test1',con=engine,index=False,if_exists='replace')
    #使用read_sql读取test表
    formlist=pd.read_sql_query('show tables',con=engine)
    print('新增一个表格后,testdb数据库数据表清单为:','\n',formlist)

    #4-9
    #使用read_table读取菜品订单信息
    from sqlalchemy import create_engine
    import pandas as pd
    engine=create_engine('mysql+pymysql://root:root@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))
    #4-10
    order4=pd.read_table('F:/桌面/第七章/meal_order_info.csv',sep=",",encoding='gbk')
    print('订单信息表的长度为:',len(order4))
    #4-11
    user=pd.read_excel('F:\桌面\第七章/users.xlsx')
    print('客户信息表的长度为:',len(user))

    from sqlalchemy import create_engine
    import pandas as pd
    engine=create_engine('mysql+pymysql://root:root@127.0.0.1:3306/testdb?charset=utf8')
    detail1=pd.read_sql_table('meal_order_detail1',con=engine)
    print('订单详情表的所有值为:','\n',detail1.index)
    print('订单详情表的列名为:','\n',detail1.columns)
    print('订单详情表的数据类型为:“,”\n',detail1.dtypes)
    

      

  •  

    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('订单详情表的元素个数为:',detail.size)
    print('订单详情表的维度数为:',detail.ndim)#查看DataFrame的维度数
    print('订单详情表的形状为:',detail.shape)#查看DataFrame的形状

    print('订单详情表转置前形状为:',detail.shape)
    print('订单详情表转置后形状为:',detail.T.shape)

    4-15~4-31

  • #使用字典访问的方式取出orderInfo中的某一列
    order_id = detail['order_id']
    print('订单详情表中的order_id形状为:','\n',order_id.shape)
    
    #使用访问属性的方式取出orderInfo中的菜品名称列
    dishes_name = detail.dishes_name
    print('订单详情表中的dishes_name的形状为:','\n',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('订单详情表中的前5行数据为;','\n',detail.head())
    print('订单详情表中的后5行数据为;','\n',detail.tail())
    
    dishes_name1 = detail.loc[:,'dishes_name']
    print('使用loc提取dishes_name列的size为:',dishes_name1.size)
    dishes_name2 = detail.iloc[:,3]
    print('使用iloc提取第3列列的size为:',dishes_name2.size)
    
    orderDish1 = detail.loc[:,['order_id','dishes_name']]
    print('使用loc提取order_id和dishes_name列地size为;',orderDish1.size)
    orderDish2 = detail.iloc[:,[1,3]]
    print('使用iloc提取第1列和第3列地size为;',orderDish2.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进行了升级和重构。
    
    #将ordeer_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))
    

      

  •  

posted on 2022-04-17 16:14  孙月梅  阅读(49)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3