1. 程式人生 > >pandas自定義排序

pandas自定義排序

import pandas as pd
#資料集
df = pd.DataFrame({'word':['a','b','c'], 'num':[2,1,3]})
#自定義排序順序,此順序對應為升序ascending=True
list_sorted = ['b', 'a', 'c']
#對相關列進行自定義排序
df['word'] = df['word'].astype('category').cat.set_categories(list_sorted)
#結果
df_sortes = df.sort_values(by=['word'], ascending=True)

說明

根據指定的list_sorted所包含元素比DataFrame中需要排序的列的元素的多或少,進行自定義排序時可以分為三種情況:

  • 相等的情況下,可以使用 reorder_categories和 set_categories方法;
  • list的元素比較多的情況下, 可以使用set_categories方法;
  • list的元素比較少的情況下, 也可以使用set_categories方法,但list中沒有的元素會在DataFrame中以NaN表示。