第五次作业——林东
习题1:读入文件pmi_days.csv,完成以下操作:
1.统计质量等级对应的天数,例如:
优:5天
良:3天
中度污染:2天
2.找出PMI2.5的最大值和最小值,分别指出是哪一天
import csv filename='C:\Users\Administrator\pmi_days.csv' with open(filename, 'r') as f: reader = csv.reader(f) header_row = next(reader) heads = []# 创建一个空列表用于存放每天的质量等级 pm=[]#创建一个空列表用于存放每天的PM2.5 day=[]#创建一个空列表用于存放日期 for row in reader: # 遍历文件对象 heads.append(row[2]) # 添加每行的第一列到列表里 pm.append(int(row[3])) day.append(row[0]) y=0 l=0 q=0 z=0 for i in range (30): if heads[i]=="优": y=y+1 elif heads[i]=="良": l=l+1 elif heads[i]=='轻度污染': q=q+1 elif heads[i]=='中度污染': z=z+1 zuida=max(pm) zuixiao=min(pm) print("优:%d天" % len(you.index), "\n良:%d天" % len(liang.index), "\n轻度污染:%d天" % len(qingdu.index), "\n中度污染:%d天" % len(zhongdu.index)) sort_pm = days_data.sort_values(by='PM2.5') sort_pm25_1 = sort_pm25.reset_index(drop=True) print("PM2.5最大值为:%d\t那一天是:%s" % (sort_pm25_1['PM2.5'][29],sort_pm25_1['日期'][29]), "\nPM2.5最小值为:%d\t那一天是:%s" % (sort_pm25_1['PM2.5'][0], sort_pm25_1['日期'][0]))
习题2:读入文件1980-2018GDP.csv,完成以下操作:
1.按行输出每年GDP数据,表头列名如文件第1行所示。
import csv with open("C:\Users\Administrator\GDP.csv" ,'r') as f: reader = csv.reader(f) for row in reader: print(row)
2.将各年GDP数据转换成字典格式,以年份为keys,其它值为values(数据类型为列表方式),例如:
{
2017:[827121.7,6.8%,60989]
........
}
import csv list=[] list1=[] zidian={} daxiao=[] d=0 e=0 with open("C:\Users\Administrator\GDP.csv",'r') as f: reader = csv.reader(f) fieldnames = next(reader) print(fieldnames) csv_reader = csv.DictReader(f,fieldnames=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("D:\Downloads\GDP.csv", 'r') as f: reader = csv.reader(f) fieldnames = next(reader) csv_reader = csv.DictReader(f, fieldnames=fieldnames) for row in csv_reader: dict={} for key,value in row.items(): dict[key] = value if key == 'GDP(亿元)': daxiao.append(float(dict.get('GDP(亿元)'))) dict.get('年份') list1.append(int(dict.get('年份'))) for i in range(0, len(list)): zidian[list1[i]] = list[i][1:] print(zidian) for i in range(0,len(daxiao)): if daxiao[i]==max(daxiao): d=list1[i] if daxiao[i]==min(daxiao): e=list1[i] print("PM2.5最大值:{} 日期:{}".format(max(daxiao), d)) print("PM2.5最小值:{} 日期:{}".format(min(daxiao), e))
3.遍历字典数据,求出GDP的最小值与最大值,并输出数据与对应的年份。