第五次作业 何雅

习题1:读入文件pmi_days.csv,完成以下操作:
1.统计质量等级对应的天数,例如:
优:5天
良:3天
中度污染:2天
2.找出PMI2.5的最大值和最小值,分别指出是哪一天。

import csv
y=0;l=0;z=0;q=0;b=0;d=0
t=[]
day=[]
pm=[]
filename = 'pmi_days.csv'
with open(filename) as f: 
    reader = csv.reader(f) # 创建cvs文件读取器
    fieldnames = next(reader) #获取数据的第一列,作为后续要转为字典的键名 生成器,next方法获取      
    csv_reader = csv.DictReader(f,fieldnames=fieldnames) #self._fieldnames = fieldnames 
                                                 # list of keys for the dict 以list的形式存放键名    
    for row in csv_reader:
        dict = {}#创建空字典,初始化字典   
        for key,value in row.items():#items() 以列表返回可遍历的(键, 值) 元组数组
            dict[key]=value #往字典里添加键的值   
        if(dict["质量等级"]=="优"):
            y+=1
        elif(dict["质量等级"]=="良"):
            l+=1
        elif(dict["质量等级"]=="中度污染"):
            z+=1  
        elif(dict["质量等级"]=="轻度污染"):
            q+=1
        t.append(list(dict.values()))

        pm.append(int(dict.get("PM2.5")))
        day.append(dict.get("日期"))

    for i in range(0,len(pm)):
        if pm[i]==max(pm):
            zd=day[i]
        if pm[i]==min(pm):
            zx=day[i]
        # min(dict, key=dict.get) 
        # max(dict, key=dict.get)
        
       
    print("优:{}天\n良:{}天\n中度污染:{}天\n轻度污染:{}天\n".format(y,l,z,q))
    print("PMI2.5的最大值:{}\n日期:{}\nPMI2.5的最小值:{}\n日期:{} ".format(max(pm),zd,min(pm),zx ))
       

  

习题2:读入文件1980-2018GDP.csv,完成以下操作: 1.按行输出每年GDP数据,表头列名如文件第1行所示。

import csv
filename = '1980-2018GDP.csv'
with open(filename) as f: 
    reader = csv.reader(f) # 创建cvs文件读取器
    #获取每行的数据
    for row in reader:
        print(row) # 打印每一行

  

2.将各年GDP数据转换成字典格式,以年份为keys,其它值为values(数据类型为列表方式),例如: { 2017:[827121.7,6.8%,60989] ........ }

3.遍历字典数据,求出GDP的最小值与最大值,并输出数据与对应的年份。

import csv
list=[]
year=[]
gdp=[]
s={}
with open("1980-2018GDP.csv", 'r') as f:
    reader = csv.reader(f)
    fieldnames = next(reader)
    print(fieldnames)
    for row in reader:
        list.append(row)
    for i in range(0,len(list)):
        print("%-8s"%list[i][0],"\t%-10.7s"%list[i][1],"\t%-12.5s"%list[i][2],"\t%-13.5s"%list[i][3],list[i][4])
with open("1980-2018GDP.csv", 'r') as f:
    reader = csv.reader(f)
    fieldnames = next(reader)
    csv_reader = csv.DictReader(f, fieldnames=fieldnames)
    for w in csv_reader:
        dict = {}
        for key, value in w.items():
            dict[key] = value
            if key=='GDP(亿元)':
                gdp.append(float(dict.get('GDP(亿元)')))
        dict.get('年份')
        year.append(int(dict.get('年份')))
    for i in range(0,len(list)):
           s[year[i]]=list[i][1:]
    print(s)
    for i in range(0,len(gdp)):
        if gdp[i]==max(gdp):
            d=list1[i]
        if gdp[i]==min(gdp):
            e=list1[i]
    print("PM2.5最大值:{}    日期:{}".format(max(gdp), d))
    print("PM2.5最小值:{}      日期:{}".format(min(gdp), e))

  

猜你喜欢

转载自www.cnblogs.com/hyy0223/p/10920587.html