Pandas сортировка по промежуточной сумме каждой группы - PullRequest
0 голосов
/ 21 апреля 2020

Еще новичок в pandas, но есть ли способ сортировки df по промежуточным итогам каждой группы.

 Area   Unit   Count
  A     A1      5
  A     A2      2
  B     B1      10
  B     B2      1 
  B     B3      3
  C     C1      10

Итак, я хочу отсортировать их по промежуточным итоговым значениям каждого Area, что приводит к A subtotal = 7, B subtotal=14, C subtotal = 10 Сортировка должна выглядеть как

 Area   Unit   Count
  B     B1      10
  B     B2      1 
  B     B3      3
  C     C1      10
  A     A1      5
  A     A2      2

* Обратите внимание, что, несмотря на значение B3 > B1 это не должно повлиять на сортировку.

1 Ответ

1 голос
/ 21 апреля 2020

создайте вспомогательный столбец 'sorter', который является суммой переменной count, и сортируйте с ней urf dataframe

df['sorter'] = df.groupby("Area").Count.transform('sum')

df.sort_values('sorter',ascending=False).reset_index(drop=True).drop('sorter',axis=1)


  Area  Unit    Count
0   B   B1       10
1   B   B2      1
2   B   B3      3
3   C   C1      10
4   A   A1      5
5   A   A2      2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...