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)

執行結果:



沒有留言:

張貼留言