【Python数据分析与处理 实训01】 ---- 菜品订单信息分析(数据了解及简单统计)


探索Chipotle快餐数据

对于下面的数据集进行简单的一些数据的分析训练:

若需要源数据请私信~


1. 将数据集存入一个名为chipo的数据框内

chipo = pd.read_csv("G:\Projects\pycharmeProject\大数据比赛\泰迪智能科技\data\chipotle.tsv",sep="\t")

这里就是最基本的数据集读取,并且指定分割符为 \t


2. 查看10行内容

print(chipo.head(10))  # 前10行
print(chipo.tail(10))  # 后10行

检阅读取的数据集,基本方法就是head、tail,主要查看获取的数据集,默认为5行,具体行数可以传入具体的数字来实现。当然还有info、description也可以用来查看数据的基本信息,小伙伴们可以尝试一下。



3 . 数据集中有多少个列(columns)?

print(chipo.shape)  # 数据的维度
print(chipo.shape[0])  # 数据的列个数

基于pandas读取的数据格式特殊性,类似于一张二维表格,有行名–index 以及 列名–column,所以在最初查看读取数据时,也可以通过其进行简单的判断与数据了解。二维可以用(行,列)来表示,同时行的标识为0,列的标识为1,可以借此来获取行数或列数。


4. 打印出全部的列名称

print(chipo.columns)   # 全部列名称


5. 数据集的索引是怎样的?

print(chipo.index)


6. 被下单数最多商品(item)是什么?

# 查看数据结构信息,看是否要进行数据类型转换
print(chipo.info())

count = chipo.groupby(by="item_name").agg({"quantity":"sum"})
print(count)
print(count.max())    # 最大值
print(count.idxmax()) # 最大值对应index

通过groupby方法可以进行按字段分组,通常分了组后一般会有聚合操作,这里使用agg()方法。(稍后会有补充说明)
这里还要介绍一个重要的方法就是idxmax(),可以直接得到最大数所对应的索引—行,max()不用多说,返回的就是最大值。



7.在item_name这一列中,一共有多少种商品被下单?

# 方法一
uniqu = chipo["item_name"].unique()
print(uniqu)
print(uniqu.size)
print("***************************************************")
#方法二
a = chipo.groupby(by='item_name').agg({'item_name':'count'}).shape[0]
print(a)

在这里,一共有多少中商品被下单,种字表明需要进行分组,按照方法二,我们可以对商品名称分组,统计每种菜品的订单数,此时的菜品是唯一的,只需要统计该结果的行数就可以得到商品的总数。按照菜品种数,唯一性提示我们可以对菜品列去重,所以按照方法一,我们先进行去重,输出发现结果集是关于菜名的一个数组对象,最后只要得到其size即可。




8. 一共有多少个商品被下单?

sum = chipo["quantity"].sum()
print(sum)

这里主要计算的就是商品订购的总数,直接统计quantity的总数即可。


9. 将item_price转换为浮点数

print(chipo["item_price"].str[1:])
print(chipo["item_price"].str[1:].astype(float))
chipo["item_price"] = chipo["item_price"].str[1:].astype(float)

原始数据中的价格为 $10.0 格式,而我们需要的仅是后半部分数字,可以利用将其转为字符串提取有效部分实现,代码中的1表示转为字符串后10.0中的1在字符串的下标索引,从下标为1出开始往后截取,并不代表截取开始处的字符,就比如:$ 20.0,截取的时候还是str[1:],注意这里有个下标的概念。



10. 在该数据集对应的时期内,收入(revenue)是多少?

# 收入 = 销售量 * 单价
chipo["revenue"] = chipo["quantity"]*chipo["item_price"]
print(chipo["revenue"].sum())

这里和计算总订购数一样,都是对某一列的计算,直接同过列.统计方法就行了。注意:此处有一个创建新列的操作,具体操作的就是
读取数据存储名['新列名'] = 。。。。 ,为新的一列进行赋值。


11. 在该数据集对应的时期内,一共有多少订单?

print(chipo["order_id"].unique().size)

在这里理解订单很重要,一开始我也理解错了。数据集中含有order_id一列,表示不同的订单数,只需要对其进行去重操作即可,订单出现了重复表明,该订单标号的人不仅仅定了一种商品,可以同时订购多个商品。


补充1:dataframe数据类型的数据访问

对于切片这部分可以参考本人博客:Python----数据分析-pandas.DataFrame基础

chipo.iloc[2, 0]       # 按行列顺序进行数据访问
chipo.iloc[2:5, 0:2]   # 按行列顺序进行数据切片时,是左闭右开的区间
chipo.iloc[:, 0]       # 访问单列数据(返回一个Series)

chipo.loc[2, 'order_id']               # 按行列名称进行数据访问
chipo.loc[2:4, 'order_id':'quantity']  # 按行列名称进行数据切片时,是闭区间
chipo.loc[:, 'order_id']
chipo.loc[:, ['order_id', 'item_name']]

chipo['order_id']                 # 访问单列数据
chipo[['order_id', 'item_name']]  # 访问多列数据


补充2:agg聚合操作

关于agg()聚合操作可以参见本人博客:Python----数据分析-pandas.数据的分组、聚合

print(chipo.groupby('order_id').agg('count'))
print(chipo.groupby('order_id').agg({'revenue':'sum','quantity':'sum','item_price':'count'}))
print(chipo.groupby('order_id').agg({'quantity':['sum','count']}))


【Python数据分析与处理 实训01】 ---- 菜品订单信息分析(数据了解及简单统计)相关推荐

  1. 【Python数据分析与处理 实训03】 --- 酒类消费信息分析(数据分组聚合 group().agg()应用)

    [Python数据分析与处理 实训03] - 酒类消费信息分析(数据分组聚合 group().agg()应用) 探索酒类消费信息 对于下面的数据集进行简单的一些数据的分析训练 若需要源数据请私信~ 1 ...

  2. Python数据分析三剑客学习笔记Day6——matplotlib包的使用:数据可视化,简单绘制柱状图、曲线图、饼图、频率分布直方图

    本文是视频Python数据分析三剑客 数学建模基础 numpy.pandas.matplotlib的学习笔记. -------------------------------------------- ...

  3. python数据分析与应用实训题答案第七章_应用回归分析,第7章课后习题参考答案...

    第 7 章 岭回归 思考与练习参考答案 7.1 岭回归估计是在什么情况下提出的? 答: 当自变量间存在复共线性时, | X'X |≈ 0 , 回归系数估计的方差就很大, 估 计值就很不稳定,为解决多重 ...

  4. Java企业实训 - 01 - Java前奏

    前言: 虽然个人专攻.NET方向,不过由于个人是干教育行业的,方方面面的东西,不能说都必须精通,但肯定多少都会涉及到. 一个菜鸟学员,从啥都不会,经过一步步学习,最后到企业上手掌管一个模块甚至一个项目 ...

  5. Python----数据分析-使用scikit-learn构建模型实训(wine数据集、wine_quality数据)

    Python----数据分析-使用scikit-learn构建模型实训(wine数据集.wine_quality数据) 目录: 实训1 使用 sklearn处理wine和wine_quality数据集 ...

  6. 计算机excel上机实训指导,上机实训指导手册——利用Excel进行数据分组和制作统计图表...

    上机实训指导手册--利用Excel进行数据分组和制作统计图表 (15页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 11.90 积分 实训指导书课程名称 ...

  7. 头歌-信息安全技术-【实训10】HTML信息隐藏、动态分析技术

    头歌-信息安全技术-[实训10]HTML信息隐藏.动态分析技术 一.[实训10]HTML信息隐藏 1.任务要求 (1)步骤1 (2)步骤2 (3)步骤3:选择隐藏方法 (4)步骤4:对比隐藏效果 2. ...

  8. 【Python数据分析与可视化】自行车租赁统计数据分析(综合实训)

    自行车租赁统计数据分析 查看有无缺失值 查看待处理数据的数据类型 实训:自行车租赁统计数据分析 import numpy as np import pandas as pd import dateti ...

  9. python大众点评网实训报告中的参考文献_Python数据分析:大众点评数据进行选址...

    Python Python开发 Python语言 Python数据分析:大众点评数据进行选址 前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时 ...

  10. 暑期项目实训——01

    项目名称:基于金融大数据的特征提取与趋势预测系统 2021.06.28 今天是项目实训的第一天所以我们只是对这个项目进行了大致的了解和小组分工,并没有对这个项目进行深入展开. 上午:导师对这个项目进行 ...

最新文章

  1. Linux 上的几个命令 dd, mv, rename
  2. 民用建筑工程给水排水设计深度图样_「安装工程识图」建筑给水排水施工图的识读方法...
  3. 简单的openssh自动升级脚本
  4. 线程池简单实现java_简单实现java线程池
  5. 栈windows linux,Linux+Windows: 程序崩溃时,在 C++ 代码中,如何获取函数调用栈信息...
  6. 用代码证明自己闲的蛋疼(三)——回溯法做数独
  7. java守护线程与用户线程_详解Java线程-守护线程与用户线程
  8. ssm框架requestmapping找不到_从MVC原理开始手敲一个MVC框架,带你体会当大神的乐趣...
  9. android elf 加固_android so加固之section加密
  10. [系列教程] Discuz模板的制作方法
  11. Project Aposs
  12. Atitit 远程存储与协议 mtp ptp rndis midi nfs smb webdav ftp hdfs v3 Atitit mtp ptp rndis midi协议的不同区别
  13. Spring Cloud - Nacos 注册中心入门单机模式及集群模式
  14. python读取scv文件显示:OSError: Initializing from file failed
  15. php 抓取天气显示天气图片,Geektool 使用 python+beautifulsoup 抓取天气显示
  16. 五种开源协议的比较(BSD,Apache,GPL,LGPL,MIT)
  17. Python 每日一记1启程
  18. 如何使用UltraCompare对比两个文件夹内容差异
  19. [杂题]「FJOI2018」所罗门王的宝藏
  20. 思科模拟器Cisco Packet Tracer菜单栏——参数选择

热门文章

  1. 从零实现HarmonyOS(鸿蒙)运动手表两个游戏的合并
  2. 多台计算机直接连接打印机,多台电脑如何连接打印机?
  3. 小程序调试技术详解(基于小猴小程序)
  4. Tableau实现世界GDP排名动态图
  5. 单体架构与微服务架构区别
  6. 利用java对接阿里云sls服务(aliyun-log)做浏览记录
  7. Android 利用canvas画各种图形(点、直线、弧、圆、椭圆、文字、矩形、多边形、曲线、圆角矩形)
  8. 计算机网络之IP协议与以太网
  9. springboot无法打开 jsp 页面变成下载解决办法
  10. 数据中心常说的IDC,EDC,ODC,DC分别指什么类型机房?