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