顯示具有 試算表 標籤的文章。 顯示所有文章
顯示具有 試算表 標籤的文章。 顯示所有文章

2025年7月25日 星期五

共筆維護試算表、地圖自動更新 - 大尺寸版

前一陣子跑去看 「國有器官」 認識 雄獅影視的管弄雲先生。 我主動建議幫他製作, 並且已經完成了: 「國有器官」放映地圖。 他們忙著更重要的事, 當然不可能請他們自己學會用 umap。 要讓他們能夠自己維護後續的新資料, 最簡單的方法就是: 我建一張 國有器官播放紀錄試算表 分享給他們, 然後我用程式把試算表的資料拉過去地圖上。 原本以為先前的 「共筆維護試算表、地圖自動更新」 可以直接拿來用, 後來才發現試算表太大 (大約超過 100 列?) 時會失敗。

2025年3月11日 星期二

共筆維護試算表、地圖自動更新 - 小尺寸版

想像一個團隊, 每位成員分頭去收集一些 (不涉及隱私或機密、 可以公開的) 地址, 要放到一張共同的地圖上面。 除了地址之外, 還有一些需要經常更動的欄位, 例如各地點的開放時間、 注意事項、 臨時公告等等。 什麼樣的工作流程會比較有效率呢? 我會開一張共筆的試算表, 例如 ethercalc 或是 google sheet, 裡面含有名稱、地址、經緯度、備註以及其他文字資訊等等欄位, 並且分享給所有成員, 然後把這張試算表餵給 umap 吃。 於是每當任何成員修改 [地址經緯度以外的] 其他任何欄位, 地圖瀏覽者只要重新整理網頁, 就會看到最新最及時的資訊。 至於經緯度, 可以透過 TGOS 手動批次更新。 編輯 google 試算表的門檻比編輯地圖低很多, 這樣的安排便於讓任何人都可以參與。

如果你的試算表較大 (超過100列?), 本篇可能不適用。 請跳到第三節見新版連結。

2025年1月10日 星期五

把所有帳號的信件都接收到自己的伺服器上 (三): 從 zimbra 匯出 csv 格式的通訊錄; 匯入 neomutt 與 posteo

延續 mbsync + neomutt + msmtp 這一篇, 接下來我想把 zimbra (使用多年下來系統自動建立) 的 「姓名 email」 通訊錄搬到 neomutt 跟 posteo。 先講心得: 過程當中用 csv 檔比較方便處理; 處理 vcf 檔的工具太少了。 反正最後要轉 vcf 很簡單。

2024年5月29日 星期三

tesseract 之數字表格圖片轉試算表 (最簡單的 OCR 應用)

雜食小股東的股利收入 老婆:「快點啦! 報稅軟體都幫你下載好了,快來算啦!」 好吧, 就用她的 windows 電腦一路 「下一步」 快速通關。 謝謝財政部。 可是身為很多家公司的小股東的她, 還想要把所有股利收入逐筆放入試算表。 問題是: 下載的 pdf 是圖檔, 讀不出文字! 幹嘛啊, 這又沒有保護作用, 只是增加納稅人的麻煩而已, 真沒意思。 沒關係, 那就把 pdf 檔搬到我的電腦, 用 OCR (optical character recognition) 工具來讀吧。

2023年4月29日 星期六

試算表的 unpivoting/melting

有些試算表它的許多欄位恰好構成資料空間的某種分割, 例如12個月份、 各類交通工具、 4種血型、 全國22個縣市... 等等。 有時候我們會希望把這 N 個欄位合併成兩個欄位, 一個欄位紀錄原表格中的欄位名稱, 另一個欄位紀錄原表格的內容, 從而產生一個 「比較瘦、 N倍高」 的新表格。 這個轉換動作稱為 unpivotingmelting 這篇文章 的圖很清楚, 大推! 也可以參考 用 google 試算表做 unpivoting 的中文教學。

2023年4月28日 星期五

「電力能源來源分類」資料整理與驗證

電力能源來源分類 右圖是我看著 electricity-mix.csv (製作過程) 整理出來的 「電力能源來源分類」 猜測。 這種樹狀的階層式結構 (hierarchy) 感覺很好拿來畫 treemap 之類的圖形。 (另文詳)

為了驗證這些猜測:

2023年4月24日 星期一

幫 OWID 資料加上三字元 iso 國碼及所在大陸

上 「資料視覺化」 課程的時候, 想要拿 electricity mix 這個資料集做例子。 發現裡面混雜著個別的國家、 聯盟 (G20、 OECD) 跟大陸 (歐/亞/非/..), 很難整理。 另一方面我也希望標示每個國家所在的大陸, 但是原始資料集裡面並沒有這項資訊。 於是我找到 List of Countries by Continent 這個表格, 並且 在 owid dataset 發問 之後修改了我的小程式 country-encode.py, 以後要整理 OWID 的資料就方便多了。

2021年12月5日 星期日

清點密碼貨幣資產

最近迷上密碼貨幣, 爬了好多文, 心得不知從何寫起。 (為什麼不應該叫做「加密貨幣」? 因為它只用到 非對稱式加解密 的 「數位簽章」 那一半, 並沒有用到它的 「加解密」 那一半。) 今天先分享一篇最單純的心得: 如何清點你的密碼貨幣資產? 我在好幾個交易所開了帳戶, 也買了好幾種密碼貨幣。 買到後來到底賺錢還賠錢連自己都頭昏搞不清楚了。 (昨天的瘋狂爆跌過後, 現在當然很明顯是賠錢的。 真希望我是今天才開始買的...) 所以建了 這個Google試算表。 大家可以拷貝回去修改成自己的版本。 裡面的數值當然只是示意, 並非我真實的投資金額, 不過確實大略反應我的資產配置重點。

2020年3月14日 星期六

被 genfromtxt 打敗

先前寫 python 程式時, 一直都用 自己手工打造的 csv 讀檔副程式; 但基於 「站在巨人肩膀上」 的理念, 仍舊希望改用別人寫好的現成函式庫。 剔除 速度超慢且有點難用的 pandas 之後, 發現 numpy 的 genfromtxt 貌似很好用。 (比 loadtxt 有更多彈性。) 結果在一個奇怪的 bug 卡好久 :-(

2020年2月1日 星期六

scatplot: 一張試算表, 散點圖畫到飽

scatplot web app 範例:陳時中團隊的 covid 19 防疫成績 大選過後, 一直想畫 「X黨 vs Y黨在各縣市得票比例對照圖」。 過年時節在家躲疫情, 終於有時間完成了一個小專案放到 github 上: scatplot 。 也請參考舊文 「三種方式產生 scatter plot / bubble chart」。 不只是程式宅, 我相信政黨智囊團、 財報型股民、 社會科學家、 自然科學家.. 任何需要以視覺化方式理解數值資料的朋友們也會喜歡這幾個 demo 網頁: LLM 比較表全球各國電價比較表揪出手機上的腫脹軟體太陽系天然衛星軌道常數股票財報指標圖陳時中團隊的 covid 19 防疫成績資料視覺化破解源自黃珊珊的假消息新聞頻道轉台運動2018 兩政黨各縣市得票比例對照圖、 [2022/12 後續有再補充與更新較新的圖片與文章連結]。

2020年1月20日 星期一

xls 或 xlsx 批次轉成 csv

看到 非典型大選分析 的漂亮地圖版大選資料視覺化, 我也手癢了。 到 中選會資料庫 的歷屆公職選舉資料, 找到 2020-第 10 屆 立法委員選舉, 下載了 「各投票所得票明細及概況」, 用 unzip -O cp950 檔名.zip 解壓縮。 下一個問題是: 要怎麼把一堆 xls 檔轉成 csv 檔? 對, 可以用 libreoffice 一個一個打開、 另存新檔。 可是我希望可以用指令批次處理啊~

2019年8月19日 星期一

網頁表格轉 csv, 瀏覽器 inspector 手動剪貼版

玩資料視覺化, 經常需要從網頁上下載表格, 再轉成 csv。 以前就曾搜尋到 sebsauvage.net 上面的 html2csv.py, 後來忘記了; 最近又重新發現一次。 很簡單: python2 html2csv.py abc.html 它會把 abc.html 裡面的所有表格串在一起, 產生一個 abc.csv 。 如果有合併列或合併欄等等比較複雜的狀況, 還是需要後續處理, 但至少比自己寫 regexp 簡單多了。 全文完。

下載 html 檔 喂~ 這樣就結束? 這篇未免太 ㄌㄢˋ ㄩˊ ㄔㄨㄥ ㄕㄨˋ 了吧! [現在有同音異字的成語太多了, 我都不知道國字該怎麼寫才對...] 至少應該要交代一下如何取得 html 啊。 如果是大量的靜態網頁, 可以用 wget 或 lynx -dump 或 curl 取得。 有可能需要 設定 user agent 才不會被網站拒絕。 如果是 javascript 所動態產生的、 上述指令無法取得的網頁呢? 如果頁面數量很多, 那就考慮用 puppeteer。 如果只是單一或少數的 [js 動態產生的] 頁面, 那就手動另存新檔就好。 可是有一些 js 頁面需要你點幾個地方之後, 才會動態填值進表格。 這時 firefox 的 console 就很好用了 -- 即使不是 js 程式設計師也值得學一下。

2019年6月27日 星期四

文字檔控用 SQL 語法肉博 csv

我是奉行 unix 哲學 的文字檔控。 用 grep 從 csv 檔撈資料的時候突然想到: 可不可以改用 SQL 指令來查詢 csv 檔呢? 果然搜尋到 qtextql 兩個專案。 而且後者直接用 apt install textql 安裝就可以用。 這工具除了讓 SQL 老手可以很方便地檢索 .csv 檔之外, 也很適合拿來當作 SQL 語法入門, 讓初學者可以 (省略無聊而繁瑣的建立資料庫步驟) 在十分鐘之內單刀直入從 (比較有趣的) SELECT 指令開始學起。

2018年12月11日 星期二

拿公投統計資料學 pandas

以前我都用 perl 處理文字資料, 例如 regexp csv 句型 都很好用。 但是現在大家都用 python, 我當然也要跟著趕一下流行啊~~ 處理試算表類型的資料時, python 程式設計師最常用 pandas 函式庫。 它也是玩機器學習或資料科學一定要學東西。 繪圖的話, matplotlib 跟 plotly 都很好用。 就讓我們拿中華臺北人很有感的十項案公投結果統計資料來當 pandas / matplotlib / plotly 的入門範例吧!

2018年11月26日 星期一

DataTables 的固定表頭、 排名、 置中

先前寫的小程式 jesp 可以拿來把好幾個 csv 檔 join 在一起, 並且方便按照任何欄位排序。 其中表格資料好用的互動排序功能, 靠的就是 jQuery 的 DataTables 外掛。 兩年多前曾在 「jQuery 無痛讀檔」 裡初次使用; 現在重學一次, 並且選用幾個好用的效果。

2018年8月30日 星期四

用 lynx 加 perl 的 csv 句型從網頁裡的表格產生試算表

如果說 三大 regexp 句型 是 「懶得學 perl 程式語言的系統管理員必學的三句 perl」, 那麼今天要介紹的就是第四重要的 perl 句型: perl -F, -nale 'print join(", ", @F[2,5,6])' 姑且就稱它為 perl 的 csv 句型吧。 它跟文字瀏覽器 lynx 合作, 可以把網頁的表格抓下來變成試算表。 當你不想為了一點小事開啟 calc 時, 就用它們來馴服 .csv 檔吧。

2018年8月28日 星期二

科普貴教你天天自助 calc 便宜股撈明牌

這篇其實是 LibreOffice Calc 的 「連結外部 csv 檔」 教學, 只是拿台股來作例子比較有實用感、 可以提高大家的學習動機 :-) 不需要唸資訊科系、 不需要寫程式, 只需要一部 linux 電腦, 並且略熟試算表函數, 例如 vlookup 及 iferror 等等即可操作。

[不怕偶爾需要自己除錯 php/js 的程式設計師可以安裝 (我寫的網頁版程式) scatplot: 一張試算表, 散點圖畫到飽 ]

2017年7月12日 星期三

跟同學交換 ethercalc 容器, 馬上理解 docker 的 volume、 port、 link

Ethercalc 是一個類似 google sheet 的共筆試算表服務。 (作者是數位政委唐鳳!) 除了 公用版 之外, 你也可以自己架設在私有雲裡。 最簡單偷懶的架設方法就用 docker。 電腦教室裡坐在隔壁的兩位 docker 新手, 還可以透過 「把我所架設的服務拿出來跟同學交換」 來學習 docker 的 -v (指定 volume 對應關係, 也就是與 host 共用某個目錄)、 -p (指定 port, 也就是通訊埠轉發)、 --link (建立 docker 之間的連結), 動手實作馬上比爬文更有感!

2017年1月30日 星期一

從試算表產生柱柱圖(三次元長條圖)

過去三十年北半球每月平均溫度跟 1951-1980 當月平均溫度差異值的 3d 長條圖 有沒有冬天越來越不冬天的八卦? 可是川普王說全球暖化是騙人的耶... 那就趁 NASA 的資料還沒被下架之前趕快到 NASA 的 地表溫度歷史記錄 去下載資料回來分析吧。 如果把北半球地表及海面上所有觀測站的溫度按月平均, 再減去某段很長時間 (例如 1951-1980) 同一月份的歷史均溫, 就可以看出溫度異常 (anomaly) 現象有沒有越來越嚴重了。

本文其實是要介紹我寫的 colchart 裡面的兩隻小程式。 假設你有一個數字二維陣列 (例如從試算表匯出的 *.csv 檔, 或是 1987 到 2016 北半球每月平均溫度異常表, 點 raw 下載)。 用 mat2list.pl 可以把它轉成 gnuplot 認得的資料格式, 再用 pt2sq.pl 可以把每一筆資料轉成四筆, 然後就可以畫出 3D 版的長條圖 -- 稱為 column chart。 可能是因為部分的資訊會被遮住, 所以這種圖表不太流行。 但是在 gnuplot 裡面, 畫好 3D 圖後還可以拉著柱柱們旋轉, 從各個方向觀賞, 死角比較少, 很適合在會議簡報上製造物美價廉的視覺效果。

2017年1月20日 星期五

使用試算表內的陣列函數來製作分組次數分配表

用 frequency() 陣列函數來製作分組次數分配表 假設你手邊有某個班級 20 位同學總共 8 次小考/作業/實作成績, 你想要製作 次數分配 (Frequency Distribution) 圖表。 本文先只處理表格的部分; 另文再談製圖。 最近為了這個需求, 第一次學會在試算表 (libreoffice 或 openoffice 的 calc, 或是 excel 也適用) 裡面使用 陣列函數 (array function)