我的输出看起来像这样:
binnedb Proba-A Proba-B Esperance-A Esperance-B
0 (0.0101, 0.0202] 0.547826 0.539130 0.007817 0.007693
1 (0.0302, 0.0402] 0.547826 0.539130 0.005963 0.005854
2 (0.0201, 0.0302] 0.547826 0.539130 0.008360 0.008227
我想做的是基于binnedb列以升序对df排序(也将以升序排序)。如果您不明白这个问题,请告诉我。那是我到目前为止尝试过的:df.sort_values(by=['binnedb'], ascending = False)
但是它不起作用...谢谢!
答案 0 :(得分:2)
间隔列实际上是遵循特定顺序的分类列。如果“ binnedb”是类别列,则可以访问其类别代码并使用argsort
:
df = df.iloc[df['binnedb'].cat.codes.argsort()]
答案 1 :(得分:2)
由于它是inverval
类型的列,因此您可以使用left
来获得左范围并对其进行排序。
df['sortkey']=df.binnedb.map(lambda x : x.left)
df=df.sort_values('sortkey')