本文完整示例程式碼及檔案已上傳至我的
Github
倉庫https://github.com/CNFeffery/PythonPracticalSkills
這是我的系列文章「Python實用祕技」的第7期,本系列立足於筆者日常工作中使用Python
積累的心得體會,每一期為大家帶來一個幾分鐘內就可學會的簡單小技巧。
作為系列第7期,我們即將學習的是:在pandas中實現自然排序順序
。
自然排序順序(Natural sort order),不同於預設排序針對字串逐個比較對應位置字元的ASCII
碼的方式,它更關注字串實際相對大小意義的排序,舉個常見的例子,假如我們有下面這樣的一張表,其中value
欄位是百分比格式的字串:
這時如果直接照常基於value
欄位進行排序,得到的結果明顯不符合資料實際意義:
而我們今天要介紹的技巧,就需要用到第三方庫natsort
,使用pip install natsort
完成安裝後,利用其index_natsorted()
對目標欄位進行自然順序排序,再配合np.argsort()
以及pandas
的sort_values()
中的key
引數,就可以通過自定義lambda
函式,實現利用目標欄位自然排序順序進行正確排序的目的:
可以看到,此時得到的排序結果完美符合我們的需求~
更多natsort
知識歡迎前往https://github.com/SethMMorton/natsort
學習更多。
本期分享結束,我們們下回見~?