1. 小明收集了某超市部分商品2022年上半年每天的价格数据并保存在"data.xlsx"文件中,如图a所示。

图 a

要分析某商品一个月内的价格稳定情况,需要将本月每天(除第一天外)价格波动的绝对值加起来(价格波动=当天价格-前一天价格),其值越小,价格越稳定。

为统计该超市6月份各商品价格稳定情况,编写如下Python程序。请回答下列问题:
import pandas as pd

df = pd.read_excel("data.xlsx")

df = _____________________

df = df.reset_index(drop=True)  # 重新设置索引,从0开始递增

(1) 获取 6 月份各商品的价格,划线处填入的代码为_______ (多选,填字母) A. df[df["日期"] >= 20220601] B. df["日期" >= 20220601] C. df[df.日期 >= 20220601] D. df[df["日期"]] >= 20220601
(2) 绘制6月份价格稳定情况线形图,部分Python程序如下,请在划线处填入合适的代码。

import matplotlib.pyplot as plt

cols = df.columns[1:] #存储各商品名称

n =

m = len(cols)

diff = [0]*m

for i in range(m):

    s = 0

    for j in range(1, n):

day_diff = abs(df[cols[i]][j]-df[cols[i]][j-1]) # 计算每天价格波动

s+=day_diff

x,y = cols,diff

plt.

plt.show ()

(3) 由图b可知,该超市6月份各商品价格最稳定的是______ (单选,填字母)

图 b

A. 商品 A B. 商品 B C. 商品 C D. 商品 D E. 商品 E
【考点】
编程处理数据与可视化; 数据分析;
【答案】

您现在未登录,无法查看试题答案与解析。 登录
综合题 普通
能力提升
换一批
1.  某省2023年全年气象灾害预警数据保存在文件“qxyj.xlsx”中,部分数据如图a所示,编写Python程序,统计全年发布次数最多的5种气象预警。

图a

#导入模块略

df=pd.read_excel("qxyj.xlsx") #读取文件中的数据

(1) 整理数据,删除多余列,划线处代码正确的是:(    )(单选,填字母)

df=df.drop(["预警发布单位","预警发布时间"],____)#删除列

A. ascending=True B. index=True C. axis=0 D. axis=1
(2) 为统计每种气象的预警次数,划线处代码正确的是:____

df_g=df.groupby("预警名称",as_index=False).____ #分组并统计预警次数

df_s= df_g.sort_values("次数"ascending=False) #按"次数"降序排序

A. sum( ) B. count( ) C. min( ) D. mean( )
(3) 排序后给数据增加“预警等级”列,按照预警名称中的“红橙黄蓝”分别设置等级1234,输出结果如图 b 所示。划线处代码正确的是:(    )

图b

df_s["预警等级"]=0#插入新的"预警等级"列,默认值为0

for i in range(len(df_s)):

 s=

 if s[2]=="红":

 df_s.at[i,"预警等级"]=1

 elif s[2]=="橙":

 df_s.at[i,"预警等级"]=2

 elif s[2]=="黄":

 df_s.at[i,"预警等级"]=3

 elif s[2]=="蓝":

 df_s.at[i,"预警等级"]=4

print(df_s)

df_s=df_s.head(5)

A. df_s[i,"预警名称"] B. df_s.at[i,"预警名称"] C. df[i,"预警名称"] D. df.at[i,"预警名称"]
(4) 统计全年发布次数最多的5种气象预警,建立图表,如图c所示。请在程序划线处填写合适的代码。

图c

x=df_s.预警名称

y=

plt.bar(x,y) #绘制柱形图

plt.title('发布次数最多的 5 种气象预警')

plt.show() #显示图表

综合题 普通
2. 图书查询。所有正版图书均有唯一的国际标准书号(ISBN),ISBN由13位数字和字符“-”组成,字符“-”对数字间隔分段。如:某图书的ISBN为“978-7-5536-3176-9”(其中“978”表示图书类代码,“7”表示地区码,“5536”表示出版社代码,“3176”表示书序码,“9”为校验码)。小李为某校园书吧编写了图书查询的程序。

(1) 主程序

lst1=readfile("in.csv")#  校园书吧库存图书信息存储在文件"in.csv"

while True:

    print("1.验证 ISBN  校验码; 2.统计出版社费用; 3.操作结束")

    opt=int(input("请输入操作编号(1-3):"))

    if opt==1:

        isbn=input("请输入 ISBN  号:")

        if check(isbn):

            print("校验码正确")

        else:

            print("校验码错误")

    elif opt==2:

        code=input("请输入出版社代码:")

        money=total(code)

        print("书吧中该出版社出版的图书总价:%.2f 元" %money)    #输出的总金额保留 2 位小数点

    else:

        print("操作结束")

        break

运行程序,若输入opt值为 4,程序将(单选,填字母;A .运行时报错/ B .输出“操作结束”)。

(2) 读写文件

小李将校园书吧库存图书信息存储在文件"in.csv"中,内容如图所示。函数readfile()用于逐行读取文件数据存入列表并返回。请在划线处填入合适的代码。

import pandas as pd

def readfile(filename):        #读 csv  格式文件内容,将其存入列表并返回

    df1=pd.read_csv(filename, encoding="GBK")

    lst=[]

    for i in df1.index:

        isbn=df1["ISBN"][i]

        num=df1["图书数量"][i]

        price=df1["单价 (元) "][i]

        #添加到列表
lst.append([isbn,num,price])

return

(3) 校验码验证

ISBN最后一位的校验码用来检验前12位数字是否准确,是保护知识产权的一种检验方法。计算方法如下:

①将ISBN中前12位数字从左到右依次编号为“1、2、3、……、12”。

②若数字编号是奇数,则对应权值为1,否则权值为3。首先将ISBN中前12位的数字值与对应权值相乘,然后将计算所得值进行累加。

③最后,用10减去第②步结果对10整除的余数,所得结果即为校验码。

defcheck(ISBN):    #对ISBN校验码验证

    n=len(ISBN)

    val=0; k=3

    for i in range(0,n-1):

        if '0'<=ISBN[i]<='9':

            k=4-k

            val+=int(ISBN[i])*k

if result==int(ISBN[-1]):

    return True

else:

    return False

(4) 统计校园书吧中某出版社出版的所有图书总价

'''列表 lst1  中的部分数据如:

[['978-7-5139-3066-6',7,59.80],['978-7-5063-3174-6',9,48.00] , ……]

'''

def total(code):                    #统计书吧中出版社代码为 code  的所有图书总价

    n=len(lst1);money=0

    for i in range(n):

        isn=lst1[i][0].split('-')     #将 list1[i][0]以“- ”为分隔符,分割成多个字符串组成的列表

        if isn[2]==code:

           

    return money

综合题 困难
3. 管理员从该停车系统中导出了3月份每天的停车记录,如第14题图a所示,每天的停车记录内容格式如第14题图b所示(进出标记为0表示驶入,1表示驶出,停车记录已按进出时间升序排列)。

 

为统计停车场3月份每天的收入(只有驶入或驶出记录的车辆不参与计费),编写Python程序。

(1) 定义readdata函数,功能为:读取某一车牌车辆当天的进出时间记录,返回该车辆当天的停车总费用。参数data为该车牌当天的进出时间记录。函数代码如下,请回答下列问题:

①程序段中加框处应填入的代码为(单选,填字母)。

A .data.进出标记[p]==0

B .data.进出标记[p-1]==0 and data.进出标记[p]==1

C .data.进出标记[p+1]==1

D .data.进出标记[p]==0 and data.进出标记[p+1]==1

②请在程序段划线处填入合适的代码。

def catime(t1,t2):

    #计算时间t1与时间t2之间的时间差并计算本次停车的费用,函数返回停车费用,代码略。

def readdata(data):

    m=len(data)

    p=0;cost=0;total=0

    while p<m-1:

        if  :

            cost=catime(data.进出时间[p],data.进出时间[p+1])

            total+=cost

            p+=1

       

    return total

(2) 统计停车场3月份每天的收入并绘制柱形图,部分Python代码如下,请在划线处填入合适的代码。

n=31;dic={}

for i in range(1,n+1):

   

    fname="3月"+str(i)+"日.xlsx"

    df=pd.read_excel(fname)

    df_g=df.groupby("车牌").进出标记.count()

    for k in df_g.index:

#只有一条驶入或驶出记录的车辆不参与计费

        if :  

            data=df[df.车牌==k]

            dic[i]+=readdata(data)

plt.title("某停车场3月份整体收入图")

plt.bar(dic.keys(),dic.values())

plt.show()

(3) 已知每月分为3个时间段,1-10日称为上旬,11-20日称为中旬,21-30(31)日称为下旬。则由图c可知,该停车场3月份(选填:上旬/中旬/下旬)收入总和最高。

图c

综合题 普通