Одно возможное решение, но не уверен в производительности:
np.random.seed(2019)
A = pd.DataFrame(np.random.randint(2,10,(10,3)))
A.columns = ['city','sales_rep','sales']
city_sales_rep = A.groupby(['city','sales_rep']).sum()
a = np.argsort(city_sales_rep.groupby(['city'])['sales'].transform('sum'))
city_sales_rep = city_sales_rep.iloc[a]
print (city_sales_rep)
sales
city sales_rep
8 2 7
7 2 8
6 2 9
9 6 4
7 9
2 2 9
4 9
6 7
7 5
Еще один солютон с новым столбцом:
city_sales_rep = A.groupby(['city','sales_rep']).sum()
city_sales_rep['new'] = city_sales_rep.groupby(['city'])['sales'].transform('sum')
city_sales_rep = city_sales_rep.sort_values('new')
print (city_sales_rep)
sales new
city sales_rep
8 2 7 7
7 2 8 8
6 2 9 9
9 6 4 13
7 9 13
2 2 9 30
4 9 30
6 7 30
7 5 30
Если возможно, дублировать sum
для различных cities
и использовать Панды 0.23.0+ возможна сортировка по уровню и столбцу вместе, проверьте документы
city_sales_rep = city_sales_rep.sort_values(['new','city'])
print (city_sales_rep)
sales new
city sales_rep
8 2 7 7
7 2 8 8
6 2 9 9
9 6 4 13
7 9 13
2 2 9 30
4 9 30
6 7 30
7 5 30
Щелкните правой кнопкой по .cs файлу, и выбор "Открывают With". Когда диалоговое окно откроется, выберите "Редактора До-диеза" и нажмите кнопку "Set as Default". Все файлы формы теперь откроются в редакторе исходного кода. Можно всегда возвращаться и выбирать "Редактора Формы До-диеза", когда Вы хотите возвратиться.
Метод не по умолчанию-> щелкает правой кнопкой и выбирает "код представления"...
Для метода по умолчанию быстрый поиск Google поднял это Jon Skeet.