習題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元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元

