数据处理与应用大单元
——pandas+matplotlib提升练习
班级 姓名
1.【202208浙名协】
(1) AD (2 分)
(2) ①sum() (1 分)
②g.index (1 分)
③技术人数 (1 分)
④df1.班级[0:3] 或 df1["班级"] [0:3] (1 分)
2.【202208A9浙协作】
①read_excel (2分)
②plt.bar(df2.index,df2.学考等第) (2分)
③plt.title (2分)
3.【202208山水联盟】
①df.at[0,"销售人员"]="毕春艳" 或 df["销售人员"][0]="毕春艳"
或df.销售人员[0]="毕春艳"或等同答案 1分
②df.groupby("商品名称")[["销售数量","利润"]].sum() 或等同答案 1分
df.groupby("商品名称")["销售数量","利润"].sum() 会出警告,也给1分
③df1.sort_values("利润",ascending=False).head(3) 或等同答案 1分
④df2[(df2["销售数量"]>25) | (df2["销售数量"]<10)] 或等同答案 2分
⑤df2["销售人员"] 或 df2.销售人员 或等同答案 1分
4.【202209七彩阳光】
①at[19,'92 号汽油'] (2 分)(写出at[]包括[]得1分,写at(19,'92 号汽油')得1分,完全写对得2分。注意:答案中的单引号可以使用双引号也可以使用三个单引号即'''92 号汽油''', 没有引号不算完全写对,下同。)
②drop('优惠',axis=1)或drop(columns='优惠') (2 分)(写出drop()包括()得1分,完全 写对得2分)
③df[df['0 号柴油']<=8.4] (2 分)(写出 df['0 号柴油']<=8.4 得 1 分,完全写对得 2 分)
④groupby('地域') (2 分) (写出 groupby()包括()得 1 分,完全写对得 2分)数据处理与应用大单元
——pandas+matplotlib提升练习
班级 姓名
1.【202208浙名协】大力老师收集了学校高三年级7选3选课数据,存储在“选课情况.xlsx”中,其数据格式如图所示,学科列下的“1”表示相应行的学生选了该学科,“0”表示未选。
(1)大力老师收集的数据存在一些问题,需要进行数据整理,下列说法合理的是( )(多选)
A.数据集中格式不一致的数据,需要进行格式转换
B.数据集中的异常数据应该直接删除或忽略
C.数据集中的缺失的数据可以用任意值填充
D.数据集中的重复数据须在审核的基础上进行合并或删除
(2)为实现统计各班技术选考人数,并找出技术选考人数最多的3个班级,大力老师通过Python编程进行数据处理,并以图表的形式呈现结果。实现上述功能的Python程序如下,请在划线处填入合适的代码。
import pandas as pd
import matplotlib.pyplot as plt
plt.rcParams["font.sans-serif"]=["SimHei"] #中文显示
df=pd.read_excel("选课情况.xlsx")
g=df.groupby("班级",as_index=True).技术.①
df1=pd.DataFrame({"班级":② ,"技术人数":g.values})
df1=df1.sort_values("③ ",ascending = False)
x=④
y=df1.技术人数[0:3]
plt.bar(x,y,lable="选技术人数")
plt.title("技术选科人数最多的三个班级")
plt.xlabel("班级")
plt.ylabel("人数")
plt.legend()
plt.ylim(40,50)
plt.show()
2.【202208A9浙协作】我校 2020 级学生高二技术学考模拟考成绩存储在文件“学考模拟.xlsx”中,部分成绩如下1图所示。小陈利用 Python 编程统计出各班技术A等人数,并使用图表呈现统计结果,如下2图所示。
实现上述功能的 Python 程序代码如下,请在划线处填入合适的代码。
import pandas as pd
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
df=pd.① ("学考模拟.xlsx")
df1=df[df.学考等第=='A']
df2=df1.groupby("班级",as_index=True).count()
② #绘制图表
for a,b in zip(df2.index, df2.学考等第): #添加图表数字标签
plt.text(a, b+0.1, '%.0f' % b)
③ ("各班技术A等人数") #设置图表标题
plt.show()
3.【202208山水联盟】某商场开业不久,老板为研判商场运营情况,调取了最近一个月的商品销售情况,如下表如示。老板想知道哪些商品卖的多,哪些商品产生的利润多,同时为表彰先进,需统计每个员工销售商品数量,并做成图表,现老板高薪聘请你为运营总监,要求你设计python程序,完成上述功能。
import pandas as pd
import matplotlib.pyplot as plt
pd.set_option('display.unicode.ambiguous_as_wide',True) #处理列数据无法对齐的情况
pd.set_option('display.unicode.east_asian_width',True)
plt.rcParams['font.sans-serif'] = 'simhei' #图表显示中文字体
df=pd.read_csv("sale.csv",encoding="gbk") #导入待处理 CSV 文件
① #修改第 1 行显示器的销售人员为“毕春艳
df["利润"]=(df["单品售价"]-df["单品进价"])*df["销售数量"] #计算出每一笔业业务利润的情况
df1=② #按"商品名称"统计本月"销售数量","利润"的总和
print(③ ) #筛选出本月赚钱较多的前3种商品
#同理,统计同种商品的月销量,代码略
#统计本月每一位销售人员的商品销售数量
df2=df.groupby("销售人员",as_index=False)["销售数量"].sum()
print(④ ) #筛选出本月销售数量>25 或销售数量<10 的销售人员
x=⑤ ; y=df2["销售数量"] #以垂直柱形图的形式统计显示所有销售员的业绩
plt.figure(figsize=(8,4))
plt.title("商场运营情况分析")
plt.bar(x,y,label="销售人员业绩图",color="r")
plt.legend( )
plt.show()
4.【202209七彩阳光】小林收集了各地区的油价存于文件“数据.xls” 中(如下1图所示),他对数据进行了如下操作:
Ⅰ.将文件“数据.xls”中的数据读入对象df中;将数据中的“八.八”修改为8.8;
Ⅱ.删除对象“df”中的“优惠”列,并将对象“df”进行更新;
Ⅲ.添加“平均油价”列,再进行相关计算;将对象“df”中数据按地区降序排序;
Ⅳ.筛选出对象“df”中数据“0 号柴油”不大于 8.4 元的数据行,保存到对象“d5”中;
Ⅴ.统计对象“d5”中的各个地域的地区个数,并绘制图表,如下2图所示。
请在划线①②③④处填入合适的代码。
import pandas as pd
import matplotlib.pyplot as plt
plt.rc('font',**{'family':'SimHei'})
df = pd.read_excel('数据.xls')
df.① =8.8
df = df.②
df['平均油价']=(df['92 号汽油']+df['95 号汽油']+df['0 号柴油'])/3
df=df.sort_values('地区',ascending=False)
d5=③
g=d5.④ ['地区'].count()
plt.bar(g.index,g.values)
plt.title("地域分布图")
plt.show()