「跟著黑蛋用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 授权

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