資料來源:農情報告資源網
這篇文章我們使用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() |
執行結果:
沒有留言:
張貼留言