Python第五次作业

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

import pandas as pd
import numpy as np
p = open(r"C:\Users\yang\AppData\Local\Programs\Python\Python36\Scripts\pmi_days.csv")
days_df = pd.read_csv(p)
D= days_df.groupby('质量等级') 
E = dict([x for x in D])['']
L = dict([x for x in D])['']
Q = dict([x for x in D])['轻度污染']
Z = dict([x for x in D])['中度污染']
print("优:%d天" % len(E.index), "\n良:%d天" % len(L.index),"\n轻度污染:%d天" % len(Q.index), "\n中度污染:%d天" % len(Z.index))
sort_pm25 = days_df.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]),"\n最小的一天是:%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]
........
}

import csv
a=[]
b=[]
bj=[]
x={}
with open("1980-2018GDP.csv", 'r') as f:
    reader = csv.reader(f)
    fieldnames = next(reader)
    print(fieldnames)
    for row in reader:
        a.append(row)
    for i in range(0,len(a)):
        print("%-8s"%a[i][0],"\t%-10.7s"%a[i][1],"\t%-12.5s"%a[i][2],"\t%-13.5s"%a[i][3],a[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(亿元)':
                bj.append(float(dict.get('GDP(亿元)')))
        dict.get('年份')
        b.append(int(dict.get('年份')))
    for i in range(0,len(a)):
        x[b[i]]=a[i][1:]
        if a[i] == max(a):
            maxyear = b[i]
        if a[i] == min(a):
            minyear = b[i]
print(x)
print("\n")
print("GDP最大值为:{}亿元 那一年是:{}年".format(max(bj),maxyear),"\n")
print("GDP最小值为:{}亿元 那一年是:{}年".format(min(bj),minyear))

  

posted @ 2019-05-24 20:59  微痞少女  阅读(181)  评论(0)    收藏  举报