「跟著黑蛋用Streamlit速成天文資料分析Web App」系列文[23]:再版重力波事件列表頁面,新增轉換時間格式、去除缺值事件、分頁表格及匯出CSV/JSON檔等功能

蘇羿豪
·
·
IPFS
·

PM貳婰舞向黑蛋說明功能新增任務:「客戶看了初版的『重力波事件列表』頁面後,列了四個想新增的功能。第一,他希望能在頁面中切換表格中的時間格式,將GPS時間系統切換成世界協調時間UTC,以便知道重力波事件是何年何月何日何時被觀測到。第二,他希望能一鍵去除欄位缺值的事件。第三,他希望能將表格分頁,預設每頁顯示10筆事件,但能自行調整顯示筆數。第四,他希望能在頁面上選擇將事件表以CSV或JSON格式匯出檔案。」

針對第一個需求,黑蛋從GWpy套件中找到能方便將GPS時間系統轉換成UTC時間的功能gwpy.time.from_gps(),並且用st.radio元件讓使用者可以在頁面上做切換。接著,他以st.checkbox元件搭配Pandas DataFrame的dropna()功能,讓使用者可以在左側邊欄一鍵去除欄位缺值的事件。

為了完成第三個需求,黑蛋在streamlit-aggrid的說明文件中,找到能設定表格分頁的功能configure_pagination(),並且加上st.number_input元件,讓使用者可以自行調整表格每頁要顯示的事件筆數。最後,他將Pandas DataFrame的to_csv()to_json()功能,結合st.radiost.download_button這兩個元件,讓使用者可以選擇把重力波事件表匯出成CSV檔或是JSON檔。

此系列文由蘇羿豪撰寫,以「創用CC 姓名標示 4.0(CC BY 4.0)國際版授權條款」釋出。另外附上此文所提及的重力波資料分析app以及完整程式碼連結。


CC BY-NC-ND 2.0 授权

喜欢我的作品吗?别忘了给予支持与赞赏,让我知道在创作的路上有你陪伴,一起延续这份热忱!

蘇羿豪"開放天文 拉近群眾與星空的距離" 中央大學天文博士,現為公民天文學家,致力於透過創作故事、遊戲等有趣體驗來推動開放科學,並運用生成式AI開發天文教育產品,著有《資料視覺化:用Python為星空作畫》。
  • 来自作者
  • 相关推荐

「與AI探索天文」如何用Bolt製作一個角色扮演遊戲,讓玩家認識能取得天文觀測資料的Python工具?

「與AI探索天文」如何用Lovable製作一個角色扮演遊戲,讓玩家透過大學社團博覽會認識各個天文研究領域?

「與AI探索天文」如何用Claude的深入研究功能,撰寫一篇基於最新研究發現的火星自傳?