image.png
首先将5题的文件复制形成副本,如下图所示:
image.png
在资源管理器的路径中输入cmd,如下图所示:
image.png
在上图中输入后,按Enter键运行进入cmd窗口。
在cmd窗口中输入并运行命令:jupyter notebook,如下图所示:
image.png
在上图中输入后,按Enter键运行自动打开浏览器并且进入jupyter notebook编程界面。
在jupyter notebook中,点击第一题,ipynb和第一题-副本.ipynb。
浏览器会新建两个标签页,如下图所示:
image.png
在两个标签页中,读者可以对照题目要求完成做题。
下面是5道题目作者的答案和解析。
1.第一大题
1.1 第一步:导入相应的模块
最后2行代码可以使作图时不出现编码错误,分别用来正常显示中文标签和正常显示负号。import pandas as pd
from pandas import Series,DataFrame
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号
1.2 第二步:利用pandas读取datasets目录下chipo.csv并显示前十行数据(赋值给变量chipo)
csv文件默认的分隔符是逗号,pd.read_csv方法中sep关键字参数的默认值也为逗号,所以可以不写sep关键字。
显示前十行数据用chipo.head(10)即可。chipo = pd.read_csv('datasets/chipo.csv')
chipo.head(10)
1.3 第三步:根据列名为item_name中每种商品出现的频率,绘制出柱状图
给出的答案示例是购买次数排名第2-6名的商品的作图结果。
chipo.item_name.value_counts()是对商品购买次数进行统计,返回的结果降序排列,数据类型为Series。
plt.xticks()方法中可以填入1个参数或者多个参数,下面代码中采用的是填入3个参数。
x_list是x轴标记点,数据类型为列表;xticks_list是x轴标记点显示值,数据类型为列表;
rotation设置为90,是x轴标记点显示值以右边为轴逆时针旋转90度。
plt.bar方法中指定每根柱子的颜色,这样才可以画出示例答案的效果。mostOrder_list = chipo.item_name.value_counts().iloc[5:0:-1]
xticks_list = mostOrder_list.index
x_list = range(len(xticks_list))
y_list = mostOrder_list.values
plt.bar(x_list, y_list, width=0.5, color=['b', 'orange', 'g', 'r', 'purple'])
plt.xticks(x_list, xticks_list, rotation=90)
plt.title('购买次数最多的商品排名')
plt.xlabel('商品名称')
plt.ylabel('出现的订单次数')
plt.show()
上面这段代码的运行结果如:
柱形图.png
1.4 第四步:根据订单编号(order_id)进行分组,求出每个订单花费的总金额,例如订单编号为1的总金额为11.56美元。然后根据每笔订单的总金额和每笔订单购买商品的总数量画出散点图(总金额为x轴,商品总数为y轴)。
先将chipo这个变量深度拷贝给c变量,这样可以避免影响原数据,使代码每次都能成功运行。
item_price这个单词是一个条目的价格,不是单个商品的单价。
我们平时超市购物的单子的最后price那一列也是算的这一个条目的价格&#