習題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
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
