数据处理与应用大单元
——excel+pandas+matplotlib数据处理与应用综合练习
班级 姓名
1.小张同学收集了某地区近五年(2015-2019)供水用水情况数据,用 Excel 软件进行数据处理,如图所示,请回答下列问题:
(1)小张在 C10 单元格输入公式后,又将 C10 单元格复制到 C12,并用自动填充功能完成C10:G10,D12:G12 单元格的数据计算,则 C12 单元格中显示的结果是① (单选,填字母:
A. # VALUE! / B.1266.27/ C. #DIV/0! / D. 14.32)
(2)若要按照上述方法正确计算所有“占总用水量百分比(%)”,小张应修改 C10 单元格的公式为② 。
(3)将农业、工业、生活、生态用水量单独复制出来到"cs.xlsx"中,如下左图所示,然后编写python程序画饼图(如下右图所示),请把下面的代码补充完整。
图表函数参考:pyplot模块中的pie(x, label="xxx")是以x(一维列表类数据)为依据,以label为标签画饼
import pandas as pd
import matplotlib.pyplot as plt
cs=③
plt.rcParams['font.family']=['SimHei'] #汉字显示
plt.pie(④ ,labels=cs["指标"],autopct='%1.1f%%')
plt.title("2019年用水占比情况")
plt.show()
2.小明从网站上收集了2018年主要城市气候情况相关数据保存在“qihou.csv”文件中,格式如图1 所示。为了分析主要城市气候情况数据,小明利用 python 绘制反映各城市平均气温的柱形图,如图 2所示。
(1)部分程序代码如下所示,补全①②划线处的代码。
import pandas as pd
import matplotlib.pyplot as plt
from matplotlib.pyplot import MultipleLocator #MultipleLocator 类用于设置刻度间隔
plt.rcParams["font.sans-serif"]=["simHei"] #汉字显示
df=pd.read_csv("qihou.csv",encoding="gbk") #读取'qihou.csv'文件,,创建 DataFrame 对象
#显示年平均气温最高的城市
df_sort=df.sort_values("年平均气温(。C)",ascending=False)
print(df_sort.head(10)) #下划线处
df1=df_sort.head(10) #下划线处
plt.figure(figsize=(10,5))
x=df1["地市"] ; y=df1["年平均气温(℃)"]
①______________________ _#绘制柱形图
plt.title("年平均气温最高的城市的 10 个城市")
plt.xlabel("地市")
plt.ylabel("年平均气温(℃)")
②______________________________#显示图例
plt.show()
(2)若要制作平均气温最低的10个城市的柱形图,则程序下划线处的代码应该改为_______________
(3)若要删除df中的“City”列数据,则代码可以为__________________________________
3.如图所示,小明从票房网上收集了 2014 年 2022 年的票房前 50 的数据。
(1)小明收集的数据存在一些问题,需要进行数据整理,下列说法合理的是( )
A.失值一般用任意值填充
B.数据须直接删除或忽略
C.复数据可以直接删除
D.不一致的数据,需要进行格式转换
(2)RANK 函数是排名函数常用于求某一个数值在某一区域内的排名。例如:=RANK(E2,E2:E51)表示 E2 在 E2:E51 区域中的排名情况。现在要求得票房排名,且 H3:H51 均由 H2 填充获得,则 H2 单元格中的公式应修改为 。
(3)用所学的 DataFrame 和 matplotlib 对票房数据进行了分析,最终算出了累计票房数前五的导演,并绘制了垂直柱形图,请完成如下程序的填空。
import pandas as pd
import matplotlib.pyplot as plt
plt.rcParams['font.family'] = ['sans-serif'] #中文显示plt.rcParams['font.sans-serif'] = ['SimHei'] #中文显示df1=pd.read_excel("票房.xlsx")
daoyan=[] piaofang=[]
for i in df1.values: #一部电影可能存在多名导演s=i[2].split("、") #按“、”分割导演名字
for j in s:
daoyan.append(j)
①
data={"daoyan":daoyan,"piaofang":piaofang} df2=pd.DataFrame(data)
② #按导演姓名分组
t=t.sum() t=t.sort_values("piaofang",ascending=False) t[0:5].plot(kind='bar',rot=0)
plt.title("票房累计前五的导演(亿)") plt.show()
4.学校信息教师搜集某次考试本校学生的信息部分小题得分数据,部分界面如图a所示。
该次考试信息技术试卷题型及分值分布如下:
试卷一共17小题,总分50分;第1-10题为单选题,每小题分值为2分;第11-14题为多选题,每小题分值为3分;第15-17题为非选择题,其中第15小题5分,第16小题6分,第17小题7分。为了更精准开展教研活动,该教师编写python程序对考试数据进行分析。
(1)程序代码及部分运行界面截图如图b和图c所示,请在划线处填入合适的代码:
import pandas as pd
import matplotlib.pyplot as plt
plt.rcParams["font.sans-serif"] = ["SimHei"] #使图形中的中文正常编码显示
df = pd.read_excel("cj.xlsx")
#为了数据的准确性,先排除0分考生
df = ①
#以下代码作用为计算每道题的难度系数(难度系数 = 平均分 / 分值)
danxuan = ["1","2","3","4","5","6","7","8","9","10"]
duoxuan = ["11","12","13","14"]
fz = {"单选":2,"多选":3,"15":5,"16":6,"17":7}
dif = []
for i in df.columns[3:]:
if i in danxuan:
key = "单选"
elif i in duoxuan:
key = "多选"
else:
key = i
dif.append(round( ② / fz[key],4))
dic = {"题号":df.columns[3:],"难度系数":dif}
df1 = pd.DataFrame(dic)
df1.to_excel("难度系数.xlsx") #输出文件"难度系数.xlsx"部分界面如下图所示
#以下代码的作用为制作如上图所示的图表(难度系数越大代表题目越简单)
df1 = df1.sort_values("难度系数")
plt.figure(figsize = (8,4))
plt.title("难度最大的 10 道题对比图")
plt.xlabel("题号") ; plt.ylabel("难度系数")
plt.show()
(2)加框处的代码可以的是下列选项中的 (单选,填字母)。
A.plt.bar(df1.题号[:10],df1.难度系数[:10])
B.plt.bar(df1.题号[-10:],df1.难度系数[-10:])
C.plt.barh(df1.题号[:10],df1.难度系数[:10])
D.df1[:10].plot(kind = "bar",rot = 0数据处理与应用大单元
——excel+pandas+matplotlib数据处理与应用综合练习
班级 姓名
1. 小张同学收集了某地区近五年(2015-2019)供水用水情况数据,用 Excel 软件进行数据处理,如图所示,请回答下列问题:
(1)小张在C10单元格输入公式后,又将C10单元格复制到C12,并用自动填充功能完成C10:G10,D12:G12 单元格的数据计算,则 C12 单元格中显示的结果是① B (单选,填字母:
A. # VALUE! / B.1266.27/ C. #DIV/0! / D. 14.32)
(2)若要按照上述方法正确计算所有“占总用水量百分比(%)”,小张应修改C10单元格的公式为② =C9/C$8*100 。
(3)将农业、工业、生活、生态用水量单独复制出来到"cs.xlsx"中,如下左图所示,然后编写python程序画饼图(如下右图所示),请把下面的代码补充完整。
图表函数参考:pyplot模块中的pie(x, label="xxx")是以x(一维列表类数据)为依据,以label为标签画饼
import pandas as pd
import matplotlib.pyplot as plt
cs=①pd.read_excel(' cs.xlsx ')
plt.rcParams['font.family']=['SimHei'] #汉字显示
plt.pie(② cs["2019年"] ,labels=cs["指标"],autopct='%1.1f%%')
plt.title("2019年用水占比情况")
plt.show()
2.小明从网站上收集了2018年主要城市气候情况相关数据保存在“qihou.csv”文件中,格式如图1 所示。为了分析主要城市气候情况数据,小明利用 python 绘制反映各城市平均气温的柱形图,如图 2所示。
(1)部分程序代码如下所示,补全①②划线处的代码。
import pandas as pd
import matplotlib.pyplot as plt
from matplotlib.pyplot import MultipleLocator #MultipleLocator 类用于设置刻度间隔
plt.rcParams["font.sans-serif"]=["simHei"] #汉字显示
df=pd.read_csv("qihou.csv",encoding="gbk") #读取'qihou.csv'文件,,创建 DataFrame 对象
#显示年平均气温最高的城市
df_sort=df.sort_values("年平均气温(。C)",ascending=False)
print(df_sort.head(10)) #下划线处
df1=df_sort.head(10) #下划线处
plt.figure(figsize=(10,5))
x=df1["地市"] ; y=df1["年平均气温(℃)"]
①_plt.bar(x,y,label="年平均气温(℃)")或等价答案 _#绘制柱形图
plt.title("年平均气温最高的城市的 10 个城市")
plt.xlabel("地市")
plt.ylabel("年平均气温(℃)")
②__plt.legend()_____________#显示图例
plt.show()
(2)若要制作平均气温最低的10个城市的柱形图,则程序下划线处的代码应该改为___tail(10)_____
(3)若要删除df中的“City”列数据,则代码可以为____df=df.drop(“City”,axis=1) 或等价答案________
3.如图所示,小明从票房网上收集了 2014 年 2022 年的票房前 50 的数据。
(1)小明收集的数据存在一些问题,需要进行数据整理,下列说法合理的是( D )
A.失值一般用任意值填充
B.数据须直接删除或忽略
C.复数据可以直接删除
D.不一致的数据,需要进行格式转换
(2)RANK 函数是排名函数常用于求某一个数值在某一区域内的排名。例如:=RANK(E2,E2:E51)表示 E2 在 E2:E51 区域中的排名情况。现在要求得票房排名,且 H3:H51 均由 H2 填充获得,则 H2 单元格中的公式应修改为 =RANK(E2,$E$2:$E$51) 或 =RANK(E2,E$2:E$51) 。
(3)用所学的 DataFrame 和 matplotlib 对票房数据进行了分析,最终算出了累计票房数前五的导演,并绘制了垂直柱形图,请完成如下程序的填空。
import pandas as pd
import matplotlib.pyplot as plt
plt.rcParams['font.family'] = ['sans-serif'] #中文显示plt.rcParams['font.sans-serif'] = ['SimHei'] #中文显示df1=pd.read_excel("票房.xlsx")
daoyan=[] piaofang=[]
for i in df1.values: #一部电影可能存在多名导演s=i[2].split("、") #按“、”分割导演名字
for j in s:
daoyan.append(j)
① piaofang.append(i[4]/10000)
data={"daoyan":daoyan,"piaofang":piaofang} df2=pd.DataFrame(data)
② t=df2.groupby(“daoyan”) 或 t=df2.groupby(“daoyan”,as_index=True) #按导演姓名分组
t=t.sum() t=t.sort_values("piaofang",ascending=False) t[0:5].plot(kind='bar',rot=0)
plt.title("票房累计前五的导演(亿)") plt.show()
4.学校信息教师搜集某次考试本校学生的信息部分小题得分数据,部分界面如图a所示。
该次考试信息技术试卷题型及分值分布如下:
试卷一共17小题,总分50分;第1-10题为单选题,每小题分值为2分;第11-14题为多选题,每小题分值为3分;第15-17题为非选择题,其中第15小题5分,第16小题6分,第17小题7分。为了更精准开展教研活动,该教师编写python程序对考试数据进行分析。
(1)程序代码及部分运行界面截图如图b和图c所示,请在划线处填入合适的代码:
import pandas as pd
import matplotlib.pyplot as plt
plt.rcParams["font.sans-serif"] = ["SimHei"] #使图形中的中文正常编码显示
df = pd.read_excel("cj.xlsx")
#为了数据的准确性,先排除0分考生
df = ① df[df["信息"]>0] 或者df[df.信息>0]
#以下代码作用为计算每道题的难度系数(难度系数 = 平均分 / 分值)
danxuan = ["1","2","3","4","5","6","7","8","9","10"]
duoxuan = ["11","12","13","14"]
fz = {"单选":2,"多选":3,"15":5,"16":6,"17":7}
dif = []
for i in df.columns[3:]:
if i in danxuan:
key = "单选"
elif i in duoxuan:
key = "多选"
else:
key = i
dif.append(round( ② df[i].mean() / fz[key],4))
dic = {"题号":df.columns[3:],"难度系数":dif}
df1 = pd.DataFrame(dic)
df1.to_excel("难度系数.xlsx") #输出文件"难度系数.xlsx"部分界面如下图所示
#以下代码的作用为制作如上图所示的图表(难度系数越大代表题目越简单)
df1 = df1.sort_values("难度系数")
plt.figure(figsize = (8,4))
plt.title("难度最大的 10 道题对比图")
plt.xlabel("题号") ; plt.ylabel("难度系数")
plt.show()
(2)加框处的代码可以的是下列选项中的 A (单选,填字母)。
A.plt.bar(df1.题号[:10],df1.难度系数[:10])
B.plt.bar(df1.题号[-10:],df1.难度系数[-10:])
C.plt.barh(df1.题号[:10],df1.难度系数[:10])
D.df1[:10].plot(kind = "bar",rot = 0)