Python第五次作业

系统 1497 0

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

Python第五次作业_第1张图片

码云地址: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])
          

Python第五次作业_第2张图片

Python第五次作业_第3张图片

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

码云地址: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()
          

Python第五次作业_第4张图片

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


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论