「Python實用秘技07」在pandas中實現自然順序排序


本文完整示例代碼及文件已上傳至我的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()以及pandassort_values()中的key參數,就可以通過自定義lambda函數,實現利用目標字段自然排序順序進行正確排序的目的:

  可以看到,此時得到的排序結果完美符合我們的需求~

  更多natsort知識歡迎前往https://github.com/SethMMorton/natsort學習更多。


  本期分享結束,咱們下回見~👋


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM