05 数据处理与应用大单元 —excel+pandas+matplotlib 巩固练习 浙教版(2019)高中信息技术选考(学考)一轮复习(含答案)

文档属性

名称 05 数据处理与应用大单元 —excel+pandas+matplotlib 巩固练习 浙教版(2019)高中信息技术选考(学考)一轮复习(含答案)
格式 zip
文件大小 2.0MB
资源类型 教案
版本资源 浙教版(2019)
科目 信息技术(信息科技)
更新时间 2022-09-21 17:42:57

文档简介

数据处理与应用大单元
——excel+pandas+matplotlib巩固练习
班级 姓名
1.某次测试的excel文件成绩表如下图所示。
(1) 已知有200名同学参加了本次测试。小明想把全体同学的信息平均分放在D202单元格,那么在D202单元格输入的公式为 =average(D2:D201)
(2)现在要求用python计算“总分”列数据,然后求每个班总分的平均分(如下左图所示),最后绘制每班总分平均分的垂直柱形图(如下右图所示)。请将空白处填充完整。
import pandas as pd
import matplotlib.pyplot as plt
plt.rcParams["font.sans-serif"]=["SimHei"] #用于显示中文标签
df=pd.read_excel("test.xlsx")
score=[]
for i in df.values:
js=① i[3]+i[4]
score.append(js)
df["总分"]=score
df1=df.groupby("班级",as_index=False)["总分"].mean()
plt.title("期中技术平均分")
② plt.bar (③ df1.班级 , df1.总分, width=0.5)
plt.show()
2.小张收集了某超市的经营数据(数据样例如下图所示),并对数据进行分析。
(1)若利用Excel软件对这些数据进行处理,打开的文件界面如下图所示,要计算所有记录中的销售金额,可以通过H3单元格中的公式向下自动填充得到,则H3单元格中的公式是_____________ __
(2)若利用Python编程对这些数据进行处理,可采用pandas模块中的 B (填字母:A.Series / B.DataFrame)数据结构来存储这些数据比较高效。
(3)若要用Python编程分析各种商品的销售金额,绘制前总销售金额前20名的商品名称和销售金额对应条形图图表,将下面程序段空白处填充完整。
import pandas as pd
import matplotlib.pyplot as plt
df=pd.read_csv("超市销售数据.csv") #用read_csv函数读取数据文件
df.销售金额= df.销售单价 * ① df.销售数量
g= ② df.groupby("商品名称",as_index=False) #按商品名称对数据进行分组统计
ss=g.销售金额.sum() #求每个商品的总销售金额
s=ss.sort_values("销售金额",③ ascending=False ).head(20)
plt.rcParams['font.sans-serif']=['SimHei'] #中文显示问题
plt.rcParams['axes.unicode_minus']=False
plt.figure(num="超市前20名商品销售金额", figsize=(10,5))
plt.title("销售排行榜", fontsize=20)
plt. barh (s.商品名称, s.销售金额, width=0.3)
plt.xlabel("前20名商品名称")
plt.ylabel("前20名商品销售金额")
plt.legend(['销售金额'])
plt.show()
3.小明收集了某超市商品价格数据,存储在“商品价格表.xlsx”文件中,其存储格式如图a 所示。
他编写了Python 程序对数据做了如下整理和分析:
(1) 将第 2 条记录中的单位“厅”改为“听”,将“总价”列改名为“售价”,并删除第 4 条记录,并计算各商品售价(售价=原价*0.8)
(2)按“商品类别”分类统计各类商品的品种数量,并按各类商品的“品种数量”降序排序,以柱形图形式显示品种最多的 10 类商品,所建立的图表如图b 所示。
Python 程序如下, 请在划线处填入合适的代码。
import pandas as pd
import matplotlib.pyplot as plt
plt.rcParams["font.sans-serif"]=["SimHei"] #用于显示中文标签
data = pd.read_excel("商品价格表.xlsx")
data.① at[1, "单位"]="听" #将第 2 条记录的单位“厅”改为“听”
data = data.rename(columns = {"总价":"售价"}) #将“总价”列名称改为“售价”
data = ② data.drop(3) #删除第 4 条记录
data["售价"] = data["原价"] * 0.8
s = data.groupby("商品类别",as_index=False).商品名称. ③ count()
#按商品类别统计商品品种数量
s = s.rename(columns = {"商品名称":"品种数量"})
#将分组统计后的 “商品名称”列改名为 “品种数量”
s = s. sort_values('品种数量',ascending=False) #按商品类别的品种数量降序排列
s= s.head(10)
plt.bar(s.商品类别 , s.品种数量,label="品种数量") #绘制柱形图
plt.title("品种最多的 10 大商品类别", fontsize=16)
plt.legend()
plt.show ()
4.李老师统计了某次考试各班学生的选择题答题情况(共 12 个小题,每小题答对记 2 分,答错记 0 分),数据存储在“score.xlsx”文件中,如下图所示。为计算每班选择题平均分(选择题平均分是指12个小题的平均分之和),同时找出选择题平均分最高的3个班级,李老师通过 Python 编程进行数据处理,并以图表的形式呈现结果。
(1)实现上述功能的 Python 程序如下,请在划线处填入合适的代码。
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
plt.rcParams['font.sans-serif']=['SimHei'] #显示中文字符,字体为黑体
df=pd.read_excel(" ① score.xlsx ")
pjf=df.groupby("班级",as_index=False).mean()
pjf= pjf.drop("考号",axis=1)
pjf["选择题平均分"]= ② pjf.sum(axis=1)
y1=pjf.min()["选择题平均分"]
y2=pjf.max()["选择题平均分"]
px=pjf.sort_values("选择题平均分",ascending=False)
print(px)
s= px.head(3)
plt.figure()
plt.bar(s.班级, ③ s.选择题平均分 或 s["选择题平均分"] )
plt.title("选择题平均分最高的 3 个班级")
plt.ylim(y1-0.2,y2+0.2)
plt.yticks(np.linspace(y1-0.2,y2+0.2,20)) #设置 y 坐标轴的刻度
plt.show()
(2)运行该程序段后,绘制出的图表下图所示,则该图表的类型是 B
(填字母:A.线形图 /B.垂直柱形图 /C.水平柱形图 )。数据处理与应用大单元
——excel+pandas+matplotlib巩固练习
班级 姓名
1. 某次测试的excel文件成绩表如下图所示。
(1) 已知有200名同学参加了本次测试。小明想把全体同学的信息平均分放在D202单元格,那么在D202单元格输入的公式为
(2)现在要求用python计算“总分”列数据,然后求每个班总分的平均分(如下左图所示),最后绘制每班总分平均分的垂直柱形图(如下右图所示)。请将空白处填充完整。
import pandas as pd
import matplotlib.pyplot as plt
plt.rcParams["font.sans-serif"]=["SimHei"] #用于显示中文标签
df=pd.read_excel("test.xlsx")
score=[]
for i in df.values:
js=①
score.append(js)
df["总分"]=score
df1=df.groupby("班级",as_index=False)["总分"].mean()
plt.title("期中技术平均分")
② (③ , df1.总分, width=0.5)
plt.show()
2.张收集了某超市的经营数据(数据样例如下图所示),并对数据进行分析。
(1)若利用Excel软件对这些数据进行处理,打开的文件界面如下图所示,要计算所有记录中的销售金额,可以通过H3单元格中的公式向下自动填充得到,则H3单元格中的公式是_____________ __
(2)若利用Python编程对这些数据进行处理,可采用pandas模块中的 (填字母:A.Series / B.DataFrame)数据结构来存储这些数据比较高效。
(3)若要用Python编程分析各种商品的销售金额,绘制前总销售金额前20名的商品名称和销售金额对应条形图图表,将下面程序段空白处填充完整。
import pandas as pd
import matplotlib.pyplot as plt
df=pd.read_csv("超市销售数据.csv") #用read_csv函数读取数据文件
df.销售金额= df.销售单价 * ①
g= ② #按商品名称对数据进行分组统计
ss=g.销售金额.sum() #求每个商品的总销售金额
s=ss.sort_values("销售金额",③ ).tail(20)
plt.title("销售金额前10名的商品")
plt.rcParams['font.sans-serif']=['SimHei'] #中文显示问题
plt.rcParams['axes.unicode_minus']=False
plt.figure(num="超市前20名商品销售金额", figsize=(10,5))
plt.title("销售排行榜", fontsize=20)
plt. (s.商品名称, s.销售金额, width=0.3)
plt.xlabel("前20名商品名称")
plt.ylabel("前20名商品销售金额")
plt.legend(['销售金额'])
plt.show()
3.小明收集了某超市商品价格数据,存储在“商品价格表.xlsx”文件中,其存储格式如图a 所示。
他编写了Python 程序对数据做了如下整理和分析:
(1) 将第 2 条记录中的单位“厅”改为“听”,将“总价”列改名为“售价”,并删除第 4 条记录,并计算各商品售价(售价=原价*0.8)
(2)按“商品类别”分类统计各类商品的品种数量,并按各类商品的“品种数量”降序排序,以柱形图形式显示品种最多的 10 类商品,所建立的图表如图b 所示。
Python 程序如下, 请在划线处填入合适的代码。
import pandas as pd
import matplotlib.pyplot as plt
plt.rcParams["font.sans-serif"]=["SimHei"] #用于显示中文标签
data = pd.read_excel("商品价格表.xlsx")
data.① #将第 2 条记录的单位“厅”改为“听”
data = data.rename(columns = {"总价":"售价"}) #将“总价”列名称改为“售价”
data = ② #删除第 4 条记录
data["售价"] = data["原价"] * 0.8
s = data.groupby("商品类别",as_index=False).商品名称. ③
#按商品类别统计商品品种数量
s = s.rename(columns = {"商品名称":"品种数量"})
#将分组统计后的 “商品名称”列改名为 “品种数量”
s = s. #按商品类别的品种数量降序排列
s= s.head(10)
plt.bar(s.商品类别 , s.品种数量,label="品种数量") #绘制柱形图
plt.title("品种最多的 10 大商品类别", fontsize=16)
plt.legend()
plt.show ()
4.李老师统计了某次考试各班学生的选择题答题情况(共 12 个小题,每小题答对记 2 分,答错记 0 分),数据存储在“score.xlsx”文件中,如下图所示。为计算每班选择题平均分(选择题平均分是指12个小题的平均分之和),同时找出选择题平均分最高的3个班级,李老师通过 Python 编程进行数据处理,并以图表的形式呈现结果。
(1)实现上述功能的 Python 程序如下,请在划线处填入合适的代码。
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
plt.rcParams['font.sans-serif']=['SimHei'] #显示中文字符,字体为黑体
df=pd.read_excel(" ① ")
pjf=df.groupby("班级",as_index=False).mean()
pjf= pjf.drop("考号",axis=1)
pjf["选择题平均分"]= ②
y1=pjf.min()["选择题平均分"]
y2=pjf.max()["选择题平均分"]
px=pjf.sort_values("选择题平均分",ascending=False)
print(px)
s= px.head(3)
plt.figure()
plt.bar(s.班级, ③ )
plt.title("选择题平均分最高的 3 个班级")
plt.ylim(y1-0.2,y2+0.2)
plt.yticks(np.linspace(y1-0.2,y2+0.2,20)) #设置 y 坐标轴的刻度
plt.show()
(2)运行该程序段后,绘制出的图表下图所示,则该图表的类型是
(填字母:A.线形图 /B.垂直柱形图 /C.水平柱形图 )。
同课章节目录