我有一些数据帧(df),其分类数据以:a,b,c和“剩余类别”的类别开头。
我想在dataframe ascending = true中对month列进行排序,但是然后对category列进行排序,使它们按以下顺序排列:
c
a
b
“剩余类别”
这可能吗? - >基本上我想要一个特定列的自定义排序顺序,但是然后将月份列按日期顺序排序。
答案 0 :(得分:1)
文档是here
In [8]: df = DataFrame({'A' : [1,1,1,2,2,3], 'B' : list('bbcdae') })
In [9]: df.dtypes
Out[9]:
A int64
B object
dtype: object
In [10]: df['B'] = pd.Categorical(df['B'],categories=list('ghbaedfc'))
In [11]: df
Out[11]:
A B
0 1 b
1 1 b
2 1 c
3 2 d
4 2 a
5 3 e
In [12]: df.dtypes
Out[12]:
A int64
B category
dtype: object
In [13]: df.sort(['B','A'])
Out[13]:
A B
0 1 b
1 1 b
4 2 a
5 3 e
3 2 d
2 1 c
答案 1 :(得分:0)
您可以使用词典并添加新的'排序'列到您的数据框。看看这个类似的问题Custom sorting with Pandas