2023年7月22日 星期六

用Python的Pandas和matplotlib來分析草屯鎮作為南投縣最大的稻米生產地

資料來源:農情報告資源網

根據農情報告資源網111年南投縣各鄉鎮梗稻第一期作資料,南投縣稻穀生產面積為1,967.16公頃,實際種植及收穫面積為1,955.16公頃,總產量為13,504,259公斤,單位產量為6,907公斤/公頃,糙米產量為10,684,910公斤,單位產量為5,465公斤/公頃。草屯鎮在南投縣中稻穀種植面積、總產量及單位產量均居首,佔南投縣總產量的65.9%。草屯鎮是南投縣的最大款倉,昔稱草鞋墩,稻桿為當地編織草鞋主要原料。其完善的灌溉系統,來自合歡山下烏溪的溪水,造就出優質稻米,尤其以農會生產的台梗九號米「合歡米」聞名。水稻是主要作物,雖栽培面積減少,但引進的台農77號台灣越光米品質上佳。草屯鎮繼承悠久的草鞋墩文化,同時展現農業及手工業重要性與傳統特色。

這篇文章我們使用Python的Pandas和Matplotlib來分析南投縣各鄉鎮梗稻第一期作資料。通過Pandas,我們整理了南投縣各鄉鎮的稻米生產相關數據,包括初步種植面積、實際種植面積、收穫面積、稻穀總產量、稻穀單位產量等。透過Matplotlib,我們製作了長條圖來直觀地比較草屯鎮與其他鄉鎮的稻米總產量。這項分析將幫助我們更深入了解草屯鎮在南投縣農業中的重要地位,並突顯其對南投縣稻米產業的貢獻。

範例一:111年南投縣各鄉鎮梗稻第一期作資料
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
import pandas as pd

# 整理經過拿掉「無收穫面積(公頃)」後的數據
data = {
    '縣市鄉鎮名稱': ['南投縣南投巿', '南投縣埔里鎮', '南投縣草屯鎮', '南投縣竹山鎮', '南投縣集集鎮', '南投縣名間鄉', '南投縣鹿谷鄉', '南投縣國姓鄉', '南投縣仁愛鄉'],
    '初步種植面積(公頃)': [217.00, 8.20, 1237.58, 222.00, 25.88, 220.00, 26.70, 0.80, 9.00],
    '實際種植面積(公頃)': [217.00, 8.20, 1237.58, 210.00, 25.88, 220.00, 26.70, 0.80, 9.00],
    '收穫面積(公頃)': [217.00, 8.20, 1237.58, 210.00, 25.88, 220.00, 26.70, 0.80, 9.00],
    '稻穀總產量(公斤)': [1540917, 40606, 8887849, 1289987, 120653, 1420860, 153311, 5318, 44758],
    '稻穀單位產量(公斤)': [7101, 4952, 7182, 6143, 4662, 6458, 5742, 6648, 4973],
    '糙米總產量(公斤)': [1217324, 32079, 7034074, 1028175, 95316, 1117126, 121116, 4201, 35499],
    '糙米單位產量(公斤)': [5610, 3912, 5684, 4896, 3683, 5078, 4536, 5251, 3944]
}

df = pd.DataFrame(data)

# 輸出DataFrame檢查數據格式是否正確
print(df)

執行結果:
   縣市鄉鎮名稱  初步種植面積(公頃)  實際種植面積(公頃)  ...  稻穀單位產量(公斤)  糙米總產量(公斤)  糙米單位產量(公斤)
0  南投縣南投巿      217.00      217.00  ...        7101    1217324        5610
1  南投縣埔里鎮        8.20        8.20  ...        4952      32079        3912
2  南投縣草屯鎮     1237.58     1237.58  ...        7182    7034074        5684
3  南投縣竹山鎮      222.00      210.00  ...        6143    1028175        4896
4  南投縣集集鎮       25.88       25.88  ...        4662      95316        3683
5  南投縣名間鄉      220.00      220.00  ...        6458    1117126        5078
6  南投縣鹿谷鄉       26.70       26.70  ...        5742     121116        4536
7  南投縣國姓鄉        0.80        0.80  ...        6648       4201        5251
8  南投縣仁愛鄉        9.00        9.00  ...        4973      35499        3944

範例二:南投縣稻穀總產量的平均值、總和、最大值和最小值
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import pandas as pd


data = {
    '縣市鄉鎮名稱': ['南投縣南投巿', '南投縣埔里鎮', '南投縣草屯鎮', '南投縣竹山鎮', '南投縣集集鎮', '南投縣名間鄉', '南投縣鹿谷鄉', '南投縣國姓鄉', '南投縣仁愛鄉'],
    '初步種植面積(公頃)': [217.00, 8.20, 1237.58, 222.00, 25.88, 220.00, 26.70, 0.80, 9.00],
    '實際種植面積(公頃)': [217.00, 8.20, 1237.58, 210.00, 25.88, 220.00, 26.70, 0.80, 9.00],
    '收穫面積(公頃)': [217.00, 8.20, 1237.58, 210.00, 25.88, 220.00, 26.70, 0.80, 9.00],
    '稻穀總產量(公斤)': [1540917, 40606, 8887849, 1289987, 120653, 1420860, 153311, 5318, 44758],
    '稻穀單位產量(公斤)': [7101, 4952, 7182, 6143, 4662, 6458, 5742, 6648, 4973],
    '糙米總產量(公斤)': [1217324, 32079, 7034074, 1028175, 95316, 1117126, 121116, 4201, 35499],
    '糙米單位產量(公斤)': [5610, 3912, 5684, 4896, 3683, 5078, 4536, 5251, 3944]
}

df = pd.DataFrame(data)

# 計算南投縣各鄉鎮稻穀總產量的平均值
average_total_production = df['稻穀總產量(公斤)'].mean()

# 計算南投縣各鄉鎮稻穀總產量的總和
total_total_production = df['稻穀總產量(公斤)'].sum()

# 找出南投縣各鄉鎮稻穀總產量的最大值
max_total_production = df['稻穀總產量(公斤)'].max()

# 找出南投縣各鄉鎮稻穀總產量的最小值
min_total_production = df['稻穀總產量(公斤)'].min()

print("南投縣各鄉鎮稻穀總產量的平均值:", average_total_production)
print("南投縣各鄉鎮稻穀總產量的總和:", total_total_production)
print("南投縣各鄉鎮稻穀總產量的最大值:", max_total_production)
print("南投縣各鄉鎮稻穀總產量的最小值:", min_total_production)

執行結果:
南投縣稻穀總產量的平均值: 1500473.2222222222
南投縣稻穀總產量的總和: 13504259
南投縣稻穀總產量的最大值: 8887849
南投縣稻穀總產量的最小值: 5318

範例三:繪製長條圖
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import pandas as pd
import matplotlib.pyplot as plt
from matplotlib.font_manager import FontProperties

# 設置中文字體
font = FontProperties(fname='C:\Windows\Fonts\kaiu.ttf')

data = {
    '縣市鄉鎮名稱': ['南投巿', '埔里鎮', '草屯鎮', '竹山鎮', '集集鎮', '名間鄉', '鹿谷鄉', '國姓鄉', '仁愛鄉'],
    '初步種植面積(公頃)': [217.00, 8.20, 1237.58, 222.00, 25.88, 220.00, 26.70, 0.80, 9.00],
    '實際種植面積(公頃)': [217.00, 8.20, 1237.58, 210.00, 25.88, 220.00, 26.70, 0.80, 9.00],
    '收穫面積(公頃)': [217.00, 8.20, 1237.58, 210.00, 25.88, 220.00, 26.70, 0.80, 9.00],
    '稻穀總產量(公斤)': [1540917, 40606, 8887849, 1289987, 120653, 1420860, 153311, 5318, 44758],
    '稻穀單位產量(公斤)': [7101, 4952, 7182, 6143, 4662, 6458, 5742, 6648, 4973],
    '糙米總產量(公斤)': [1217324, 32079, 7034074, 1028175, 95316, 1117126, 121116, 4201, 35499],
    '糙米單位產量(公斤)': [5610, 3912, 5684, 4896, 3683, 5078, 4536, 5251, 3944]
}

df = pd.DataFrame(data)


# 製作長條圖來比較不同鄉鎮的稻穀總產量
plt.figure(figsize=(10, 6))
plt.bar(df['縣市鄉鎮名稱'], df['稻穀總產量(公斤)'])
plt.xlabel('鄉鎮名稱', fontproperties=font)
plt.ylabel('稻穀總產量(公斤)', fontproperties=font)
plt.title('南投縣各鄉鎮稻穀總產量比較', fontproperties=font)
plt.xticks(rotation=45, fontproperties=font)
plt.show()

執行結果:


沒有留言:

張貼留言