2026年3月12日 星期四

Python軟體安裝與套件準備 (以醫策會疾病認證指標版本對照撈取任務為例+2個同場加映)


任務名稱:撈取醫策會疾病認證指標版本並與先前撈取版本比對,若有差異則標示出顏色。

爬取網頁:財團法人醫院評鑑暨醫療品質策進會-認證與競賽-疾病照護品質認證-品質指標-疾病照護品質認證-品質指標介紹與說明

(1) 於Excel上執行Python程式碼 (Excel要錢(廢言),Python免費,運行時要連網)

1-1使用租賃(訂閱)版Office (買斷制Office不行,就是有掛年份的不行,i.g., Office 2024)

↓ 申請成為測試人員 (此功能日後應會成為Excel的內建功能,但這個功能我都使用超過2年了,它還在測試階段...),右區的「我同意」,我記得可以不用勾。按確定後,我記得要等一陣子(可能2-3天吧)功能才會釋放下來。

圖片 20260311203328

↓ 支援的套件如下:


↓ 上述5個套件其描述如下:

↓ 若「公式」分頁內看到Python,表示你的Excel已獲得神功。它運作的機制是Python code執行後會送到外部伺服器(Microsoft Azure 雲端容器)執行,最後再將結果送回地端Excel裡,所以全程要連網。以下資料為SAS軟體官方教育訓練用的dataset (心血管病人明細表)。

圖片 20260311203521

↓ 針對表內的Cholesterol變項給出描述性統計值


↓ 將表內資料依Weight Status分群並呈現每群的Weight平均數。


↓ 繪製統計圖

圖片 20241002161820





1-2 只要有Excel就行,透過軟體內增益集執行Python Code (但可能有版本限制,細節我不知得再查。因我用租賃訂閱版,所以Office保持在最新版) 。

↓ Excel軟體「常用」分頁內增益集>分別輸入以下兩增益集名稱並安裝。

↓ 安裝完成的畫面



小結:

1.針對小案子,只是要做簡易資料清理和計算描述性統計值並繪製統計圖,可用上述方法,特別推薦方法1-1。然而,若屬大型專案且有複雜的製作流程,請一律在Spyder軟體上執行。

2.Microsoft 和 Anaconda合作,提供固定套件環境,所以你能用的套件就上述那幾個,不能自行pip install xxx (於後面說明)

3.Python in Excel不是直接寫腳本(一般所認知的程式碼),而是寫在 Excel 公式內

4.因為是在雲端容器執行,所以有資料量限制。若一次處理數10萬筆以上資料,可能會卡住。

5.不支援很多互動式 Python功能,例如爬蟲、程式跑到一半暫停等使用者即時輸入 input()關鍵資料再繼續跑等,若使用xlwings Lite,就可以突破部份限制;但若購入xlwings版,就真的幾乎沒有 Excel 限制。

Python in Excel(指方法1-1),算是一個提供「方便」的方法,但太過封閉致很多功能被封印。

(2)於Spyder上執行 (軟體免費,運行時不用連網,但下載套件和爬蟲時要(廢言))

關於執行Python程式碼的軟體,可見先前寫過的文章。這裡將講述安裝Anaconda平台內Spyder和簡易設定方法,Anaconda 下載處

↓ 可以去註冊一個帳號(Sign in內的Sign up)。然後一樣再開啟此畫面點Get Started >


↓ 選Windows下的Anaconda distribution (所以你若是Mac,就選Mac, 所以Mac也可跑Python)


由於我身邊所有電腦都已安裝Anaconda,所以安裝過程畫面就不再張貼(不太可能為了寫這篇文章而刪除Anaconda,刪了Anaconda等於也刪了Spyder,我的Spyder上還有一堆設定和套件,不太想重來一遍)。
↓ 安裝完成後,於右上角輸入剛剛註冊的帳號。

↓ 然後啟動Spyder (所以這個Anaconda內含多種軟體,我先前的文章有點到)

我寫出程式碼後,接下來將把程式碼.py檔案移交給負責疾病認證同仁自行執行,故移交說明如下:

任務名稱:撈取醫策會疾病認證指標版本並與先前撈取版本比對,若有差異則標示出淡紅色。
成果Excel檔:

2026-03-11 12 45 48

每次執行就滾動更新,「原日期版本」被「新日期版本」取代,而「新日期版本」則填入剛撈取後的值。此外,撈取日期也會一併自動更新。初次設定會花些時間,待一切就位完畢,第二次(含以後)執行過程只須花15秒就可以得到上述Excel檔(從程式碼選取按跑開始算)。

↓ 設定Spyder介面語言 (沒有繁體中文,只有殘體中文可選)
   靠Code執行的軟體(操作不是點按拖拉放的),其介面語言其實沒那麼重要。

在C槽建立名為py的資料夾,把我提供的.py程式碼檔案和上述Excel檔放入。
↓ 此處改成這樣,即指定工作資料夾。

↓ 然後將.PY檔案拖入Spyder中,就是這樣的畫面。左上角可看到使用了多個套件(package)。
2026-03-11 12 48 11

此任務會用到的套件如下:
selenium, pandas, time, bs4, re, os, datetime, openpyxl, 先檢視有否安裝

↓ 先選第一列,按跑

↓ 結果如下,這樣就表示匯入成功。專業講,就是已將Selenium套件內的webdriver模組匯入到目前的命名空間(可想成名字對照表,註)。之後程式碼可以直接寫webdriver.Edge(),而不用寫完整路徑 selenium.webdriver.Edge()。如果程式碼只寫import selenium,每次要使用Edge()函數得寫成selenium.webdriver.Edge()。

註:程式讀到 webdriver.Edge() (意義:建立一個 Edge 瀏覽器物件),就去表裡(即前述的命名空間)查對應的模組並執行。

↓ 匯入不成功的案例,就是error,就是軟體目前無此套件。

↓ 也可以全選按跑,一次性清查,這樣表示全部過關,該有的「零件」都有。

↓ 若要查目前軟體已安裝哪些套件,可在程式文件檔打入pip list,選取按跑

↓ 結果會出現在控制台視窗中, pip list也可直接打在此視窗中,按enter就是跑。

↓ 接下來教怎麼安裝套件。python安裝套件靠pip(它算是個模組,可以安裝套件,名為pip),先在程式文件檔打入pip install pip (前面pip算動詞,我要安裝(行內話叫去pip一下套件),後面pip算名詞),按執行得到以下結果,所以現在有26.0.1版本可更新(對現階段的我來說)。

↓ 其它常用指令

↓ 去套件庫看 按我開啟,可知目前最新版確為26.0.1

↓ 更新pip這個套件的方法,使用我提供的txt文檔,將文檔內所有內容複製。

↓ 再貼到新程式文件檔,然後未選程式碼按執行。

↓ 開始安裝最新版pip,完成後會有 Successfully installed pip-26.0.1 資訊。認真說,幾乎不太會特別去更新此pip。

↓ 接下來將使用這個pip來安裝其它套件。Python其實已內建這些模組time, re, os, datetim,你跑就知道,故不用再安裝。現在要安裝的是selenium, pandas, bs4, openpyxl
執行pip install selenium後,通常會有幾個結果 1.Requirement already satisfied=表示你有裝了  2.Successfully installed xxx-1.2.3=已成功安裝  3.ERROR: Could not find...表示安裝失敗。

↓ 也可去套件庫找 ,輸入selenium,點入

↓ 按一下該鈕,即複製pip install selenium這段文字,然後再貼入軟體去執行。

還剩pandas, bs4, openpyxl三個,bs4在安裝時,要用pip install beautifulsoup4,請逐一完成安裝。
↓ 然後再執行,看是否是這樣。若有error,請再回頭檢查。

↓ 接著要下載Edge邊緣驅動程式,到此下載。目前版本為145.0.3800
下載來的.exe檔不用安裝,但把它放在py資料夾中。
↓ 我的Edge網頁瀏覽器目前版本,145.0.3800

Edge邊緣驅動程式的版本要跟上Microsoft Edge版本 (好像至少abc要一樣的樣子 a.b.c.d),否則同樣會跑不出來,看error訊息就知Edge driver該更新了。

接著開始跑主程式前,再確認此程式碼.py文件檔和該Excel檔在py資料夾中,且工作資料夾已設為C:\PY, 如果不是這樣,結果必跑不出來。
↓ 然後程式碼都不要選,按跑(運行文件(F5)),它就會開始去抓,約20秒內就會全部抓完並產生EXCEL檔。
2026-03-11 12 45 48

當你下次要再跑時,直接跑即可,一下子就搞定,省時又省力。
↓ 所以這個任務須準備這4個檔案(簡稱A案)。
以上4個檔案本文章不提供

同場加映!

先前文章談及的爬蟲標的-抓取疾病認證合格效期內的醫院名單
↓ 使用的檔案(這個會抓比較久,約15分鐘吧,反正啟動後就去做別的事)
   要注意的地方同上面的專案(簡稱B案)
以上檔案本文章不提供

↓ 成果檔


同場加映!

抓取各類疾病認證指標明細表
↓ 使用的檔案(簡稱C案)
以上檔案本文章不提供

↓ 成果檔


本篇文章著重於Spyder環境設定和套件準備教學,其餘內容算是專業技能展示文
如果本文章提供的資訊對你有幫助,可以考慮請我喝飲料(金額隨喜),謝謝。
台新銀行帳戶 (備註: PY3)

沒有留言: