习题1:读入文件pmi_days.csv,完成以下操作:
1.统计质量等级对应的天数,例如:
优:5天
良:3天
中度污染:2天
2.找出PMI2.5的最大值和最小值,分别指出是哪一天。
import pandas as pd import numpy as np days_path = open(r"pmi_days.csv") days_data = pd.read_csv(days_path) d = days_data.groupby('质量等级') you = dict([x for x in d])['优'] liang = dict([x for x in d])['良'] qing = dict([x for x in d])['轻度污染'] zhong = dict([x for x in d])['中度污染'] print("优:%d天" % len(you.index), "\n良:%d天" % len(liang.index), "\n轻度污染:%d天" % len(qing.index), "\n中度污染:%d天" % len(zhong.index)) sort_pm25 = days_data.sort_values(by='PM2.5') sort_pm25_2 = sort_pm25.reset_index(drop=True) print("PM2.5最大的一天是:%s。数值:%d" % (sort_pm25_2['日期'][29], sort_pm25_2['PM2.5'][29]), "\nPM2.5最小的一天是:%s。数值:%d" % (sort_pm25_2['日期'][0], sort_pm25_2['PM2.5'][0]))
习题2:读入文件1980-2018GDP.csv,完成以下操作:
1.按行输出每年GDP数据,表头列名如文件第1行所示。
2.将各年GDP数据转换成字典格式,以年份为keys,其它值为values(数据类型为列表方式),例如:
{
2017:[827121.7,6.8%,60989]
........
}
3.遍历字典数据,求出GDP的最小值与最大值,并输出数据与对应的年份。
import csv lista=[] listb=[] bijiao=[] x={} with open("1980-2018GDP.csv", 'r') as f: reader = csv.reader(f) fieldnames = next(reader) print(fieldnames) for row in reader: lista.append(row) for i in range(0,len(lista)): print("%-8s"%lista[i][0],"\t%-10.7s"%lista[i][1],"\t%-12.5s"%lista[i][2],"\t%-13.5s"%lista[i][3],lista[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(亿元)': bijiao.append(float(dict.get('GDP(亿元)'))) dict.get('年份') listb.append(int(dict.get('年份'))) for i in range(0,len(lista)): x[listb[i]]=lista[i][1:] if lista[i] == max(lista): maxyear = listb[i] if lista[i] == min(lista): minyear = listb[i] print(x) print("GDP最大值为:{}亿元 那一年是:{}年".format(max(bijiao),maxyear)) print("GDP最小值为:{}亿元 那一年是:{}年".format(min(bijiao),minyear))