习题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))