顯示具有 南投 標籤的文章。 顯示所有文章
顯示具有 南投 標籤的文章。 顯示所有文章

2023年7月23日 星期日

用Python的pandas和docx來處理南投南瓜種植資訊以及草屯鎮南瓜產品商家資訊

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

範例一:南投縣各鄉鎮111年南瓜全年作的資訊

 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
import pandas as pd

# 創建資料表格
data = {
    '縣市鄉鎮名稱': ['南投縣中寮鄉', '南投縣仁愛鄉', '南投縣信義鄉', '南投縣南投巿', '南投縣名間鄉',
                   '南投縣國姓鄉', '南投縣埔里鎮', '南投縣水里鄉', '南投縣竹山鎮', '南投縣草屯鎮',
                   '南投縣集集鎮', '南投縣魚池鄉', '南投縣鹿谷鄉'],
    '種植面積(公頃)': [4.25, 10.50, 16.90, 1.20, 7.15, 13.09, 44.91, 5.96, 4.55, 20.52, 0.95, 1.00, 2.78],
    '收穫面積(公頃)': [4.25, 10.50, 16.90, 1.20, 7.15, 13.09, 44.91, 5.96, 4.55, 20.52, 0.95, 1.00, 2.78],
    '每公頃收量(公斤)': [15000, 16628, 14716, 17842, 18756, 12000, 13815, 12800, 12791, 11116, 18421, 16120, 13928],
    '收量(公斤)': [63750, 174590, 248700, 21410, 134105, 157080, 620452, 76288, 58200, 228105, 17500, 16120, 38720]
}

df = pd.DataFrame(data)

# 輸出完整的資料表格
print(df)

# 計算南投縣整體南瓜產量
total_production = df['收量(公斤)'].sum()
print("南投縣整體南瓜產量:", total_production, "公斤")

# 計算各地區南瓜收量佔全縣的比例
df['收量比例(%)'] = (df['收量(公斤)'] / total_production) * 100
print(df[['縣市鄉鎮名稱', '收量(公斤)', '收量比例(%)']])

執行結果:
    縣市鄉鎮名稱  種植面積(公頃)  收穫面積(公頃)  每公頃收量(公斤)  收量(公斤)
0   南投縣中寮鄉      4.25      4.25      15000   63750
1   南投縣仁愛鄉     10.50     10.50      16628  174590
2   南投縣信義鄉     16.90     16.90      14716  248700
3   南投縣南投巿      1.20      1.20      17842   21410
4   南投縣名間鄉      7.15      7.15      18756  134105
5   南投縣國姓鄉     13.09     13.09      12000  157080
6   南投縣埔里鎮     44.91     44.91      13815  620452
7   南投縣水里鄉      5.96      5.96      12800   76288
8   南投縣竹山鎮      4.55      4.55      12791   58200
9   南投縣草屯鎮     20.52     20.52      11116  228105
10  南投縣集集鎮      0.95      0.95      18421   17500
11  南投縣魚池鄉      1.00      1.00      16120   16120
12  南投縣鹿谷鄉      2.78      2.78      13928   38720
南投縣整體南瓜產量: 1855020 公斤
    縣市鄉鎮名稱  收量(公斤)    收量比例(%)
0   南投縣中寮鄉   63750   3.436621
1   南投縣仁愛鄉  174590   9.411758
2   南投縣信義鄉  248700  13.406864
3   南投縣南投巿   21410   1.154165
4   南投縣名間鄉  134105   7.229302
5   南投縣國姓鄉  157080   8.467833
6   南投縣埔里鎮  620452  33.447187
7   南投縣水里鄉   76288   4.112516
8   南投縣竹山鎮   58200   3.137432
9   南投縣草屯鎮  228105  12.296633
10  南投縣集集鎮   17500   0.943386
11  南投縣魚池鄉   16120   0.868993
12  南投縣鹿谷鄉   38720   2.087309

範例二:草屯鎮商家的南瓜應用例子

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
import pandas as pd

# 建立南瓜應用例子的字典資料
data = {
    '商家名稱': ['麥蛋榚', '絲酥入叩', '川前屋新日式廚房', '草屯鎮農會與老鍋米粉', '60號咖啡館', '中原小館'],
    '應用菜式': ['栗香南瓜蛋榚', '南瓜子薄片', '養生南瓜泥沙拉', '栗子南瓜炒米粉', '南瓜山藥蔬食燉飯', '炸南瓜'],
    '描述': ['是一種使用南瓜刨絲製作的蛋糕', '是一種以南瓜子為主要原料的薄片零食', '是一道健康的沙拉,以南瓜泥作為主要成分', 
            '用100%純米及草屯鎮特產栗子南瓜製作的沖泡即時米粉', '是一道搭配南瓜和山藥的素食燉飯', '是一道以南瓜炸製的點心,酥脆的麵衣包裹著鬆軟香甜的南瓜']
}

# 使用Pandas建立DataFrame
df = pd.DataFrame(data)

# 顯示資料表格
print(df)

執行結果:
         商家名稱      應用菜式                           描述
0         麥蛋榚    栗香南瓜蛋榚                是一種使用南瓜刨絲製作的蛋糕
1        絲酥入叩     南瓜子薄片            是一種以南瓜子為主要原料的薄片零食
2    川前屋新日式廚房   養生南瓜泥沙拉          是一道健康的沙拉,以南瓜泥作為主要成分
3  草屯鎮農會與老鍋米粉   栗子南瓜炒米粉   用100%純米及草屯鎮特產栗子南瓜製作的沖泡即時米粉
4      60號咖啡館  南瓜山藥蔬食燉飯              是一道搭配南瓜和山藥的素食燉飯
5        中原小館       炸南瓜  是一道以南瓜炸製的點心,酥脆的麵衣包裹著鬆軟香甜的南瓜

範例三:輸出Excel和Word檔案

 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
33
34
35
36
37
38
39
40
41
import pandas as pd
from openpyxl import Workbook
from openpyxl.utils.dataframe import dataframe_to_rows
from docx import Document

# 建立南瓜應用例子的字典資料
data = {
    '商家名稱': ['麥蛋榚', '絲酥入叩', '川前屋新日式廚房', '草屯鎮農會與老鍋米粉', '60號咖啡館', '中原小館'],
    '應用菜式': ['栗香南瓜蛋榚', '南瓜子薄片', '養生南瓜泥沙拉', '栗子南瓜炒米粉', '南瓜山藥蔬食燉飯', '炸南瓜'],
    '描述': ['是一種使用南瓜刨絲製作的蛋糕', '是一種以南瓜子為主要原料的薄片零食', '是一道健康的沙拉,以南瓜泥作為主要成分', 
            '用100%純米及草屯鎮特產栗子南瓜製作的沖泡即時米粉', '是一道搭配南瓜和山藥的素食燉飯', '是一道以南瓜炸製的點心,酥脆的麵衣包裹著鬆軟香甜的南瓜']
}

# 使用Pandas建立DataFrame
df = pd.DataFrame(data)

# 將DataFrame輸出到Excel檔案
excel_file = '南投縣草屯南瓜應用.xlsx'
df.to_excel(excel_file, index=False)

# 使用openpyxl讀取Excel檔案並轉換為Word檔案
from openpyxl import load_workbook

# 讀取Excel檔案
wb = load_workbook(excel_file)
ws = wb.active

# 創建Word檔案
doc = Document()

# 將Excel資料輸出到Word表格
table = doc.add_table(rows=1, cols=len(df.columns))
table.style = 'Table Grid'
for row in dataframe_to_rows(df, index=False, header=True):
    cells = table.add_row().cells
    for i, value in enumerate(row):
        cells[i].text = str(value)

# 儲存Word檔案
doc_file = '南投縣草屯南瓜應用.docx'
doc.save(doc_file)

執行結果:



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()

執行結果: