Сортировать DataFrame по столбцу интервалов - PullRequest
0 голосов
/ 31 декабря 2018

Мой вывод выглядит следующим образом:

     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

Что я хотел бы сделать, это отсортировать df в порядке возрастания на основе столбца binnedb (который также будет отсортирован в порядке возрастания).Пожалуйста, дайте мне знать, если вы не поняли вопрос.Вот что я пробовал до сих пор: df.sort_values(by=['binnedb'], ascending = False)

Но это не работает ... спасибо!

Ответы [ 2 ]

0 голосов
/ 31 декабря 2018

Поскольку это столбец типа inverval, вы можете использовать left, чтобы получить левый диапазон и отсортировать по нему базу.

df['sortkey']=df.binnedb.map(lambda x : x.left)
df=df.sort_values('sortkey')
0 голосов
/ 31 декабря 2018

Интервальные столбцы являются фактически категориальными столбцами, которые следуют за определенным порядком.Если «binnedb» является категориальным столбцом, вы можете получить доступ к его кодам категории и использовать argsort:

df = df.iloc[df['binnedb'].cat.codes.argsort()]
...