Python第五次作业

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

 1 import pandas as pd
 2 import numpy as np
 3 
 4 days_path = open(r"C:\Users\Shinelon\Desktop\pmi_days.csv")
 5 days_df = pd.read_csv(days_path)
 6 
 7 # 统计质量等级对应的天数
 8 data = days_df.groupby('质量等级')
 9 
10 
11 day_you = dict([x for x in data])['']
12 day_liang = dict([x for x in data])['']
13 day_qing = dict([x for x in data])['轻度污染']
14 day_zhong = dict([x for x in data])['中度污染']
15 print("优:%d天" % len(day_you.index), "\n良:%d天" % len(day_liang.index),
16       "\n轻度污染:%d天" % len(day_qing.index), "\n中度污染:%d天" % len(day_zhong.index))
17 
18 
19 # 找出PM2.5的最大值和最小值,分别指出是哪一天
20 sort_pm25 = days_df.sort_values(by='PM2.5')
21 sort_pm25_2 = sort_pm25.reset_index(drop=True)
22 print("PM2.5最大的一天是:%s。数值:%d" % (sort_pm25_2['日期'][29], sort_pm25_2['PM2.5'][29]),
23       "\nPM2.5最小的一天是:%s。数值:%d" % (sort_pm25_2['日期'][0], sort_pm25_2['PM2.5'][0]))

码云地址:https://gitee.com/BURY--18/Ch_18forever.git

习题2:读入文件1980-2018GDP.csv,完成以下操作:
1.按行输出每年GDP数据,表头列名如文件第1行所示。

2.将各年GDP数据转换成字典格式,以年份为keys,其它值为values(数据类型为列表方式),例如:
{
2017:[827121.7,6.8%,60989]
........
}

3.遍历字典数据,求出GDP的最小值与最大值,并输出数据与对应的年份。

 1 import pandas as pd
 2 
 3 days_path = open(r"C:\Users\Shinelon\Desktop\1980-2018GDP.csv")
 4 days_list = pd.read_csv(days_path)
 5 
 6 # 1.按行输出每年GDP数据
 7 print(days_list, "\t\t\n")
 8 
 9 
10 # 2.将各年GDP数据转换成字典格式,以年份为keys,其它值为values(数据类型为列表方式)
11 dict_GDP = days_list.set_index('年份').T.to_dict('list')
12 print("字典:", dict_GDP, "\n")
13 
14 
15 # 3.遍历字典数据,求出GDP的最小值与最大值,并输出数据与对应的年份。
16 data_max = max(dict_GDP, key=dict_GDP.get)
17 data_min = min(dict_GDP, key=dict_GDP.get)
18 print("GDP最大值:", data_max, dict_GDP[data_max], "\n")
19 print("GDP最小值:", data_min, dict_GDP[data_min])

*由于字典太长,所以只截取了其中两个键值对。

码云地址:https://gitee.com/BURY--18/Ch_18forever.git

习题3:扩展(选作,二选一)
1.绘制每年的GDP数据的直方图,横坐标为年份,纵坐标为GDP值。
2.绘制每年的GDP数据的折线图,横坐标为年份,纵坐标为GDP值。

 1 import pandas as pd
 2 import numpy as np
 3 import matplotlib.pyplot as plt
 4 
 5 days_path = open(r"C:\Users\Shinelon\Desktop\1980-2018GDP.csv")
 6 days_list = pd.read_csv(days_path)
 7 
 8 # print(days_list)
 9 plt.rcParams['font.sans-serif'] = ['SimHei']  # 默认字体
10 plt.rcParams['axes.unicode_minus'] = False  # ”-“负号为方块问题
11 
12 plt.figure(figsize=(30, 8))
13 plt.xlim(1978, 2019)
14 plt.ylim(0, 1000000)
15 x_num = np.arange(1978, 2019, 1)
16 y_num = np.arange(0, 1000000, 50000)
17 plt.xticks(x_num)
18 plt.yticks(y_num)
19 
20 # 1.绘制每年的GDP数据的直方图
21 plt.bar(days_list['年份'], days_list['GDP(亿元)'], label="GDP值", color='c')
22 # 2.绘制每年的GDP数据的折线图
23 plt.plot(days_list['年份'], days_list['GDP(亿元)'], label="GDP值", color='r')
24 
25 plt.title('1980-2018年GDP数据统计图')
26 plt.xlabel('年份(年)')
27 plt.ylabel('GDP值(亿元)')
28 plt.legend(loc='upper right')
29 # plt.grid(True, alpha=0.5)
30 plt.show()

码云地址:https://gitee.com/BURY--18/Ch_18forever.git

转载于:https://www.cnblogs.com/BURY--18/p/10865174.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值