Сортировать по порядку от наибольшего к наименьшему, используя группу панд по - PullRequest
1 голос
/ 01 мая 2019

Пытаясь отсортировать от наименьшего к объему продаж компании, которая также реорганизует названия компаний на основе индекса продаж в списке.

Я не могу понять, что попробовать, поскольку яЯ застрял.

df=df.groupby(df['Distributor'])['Tickets Sold'].sum() 
df1=df[df.div(df.sum()).lt(0.01)] df2=df.drop(df1.index) 
yourdf=pd.concat([df2,pd.Series(df1.sum(),index=['Others'])])
print(yourdf)

Вместо этого.

20th Century Fox 141367982   
Focus Features 18799261 
Lionsgate 75834308 
Paramount Pictures 86302817 
STX Entertainment 22606674 
Sony Pictures 102746480 
Universal 159556790 
Walt Disney 315655340 
Warner Bros. 216426845 
Others 74618013 

Мне это нужно.

Walt Disney 315655340 
Warner Bros. 216426845 
Universal 159556790 
20th Century Fox 141367982 
Sony Pictures 102746480 
Paramount Pictures 86302817 
Lionsgate 75834308
Others 74618013 
STX Entertainment 22606674 
Focus Features 18799261

Ответы [ 2 ]

0 голосов
/ 01 мая 2019

Вы можете использовать метод sort_values ​​()

   df.sort_values(by=['ColName'], ascending=False)
0 голосов
/ 01 мая 2019

Это решит вашу проблему!

df=df.groupby(df['Distributor'])['Tickets Sold'].sum()
df1=df[df.div(df.sum()).lt(0.01)]
df2=df.drop(df1.index)
yourdf=pd.concat([df2,pd.Series(df1.sum(),index=['Others'])])

yourdf = yourdf.sort_values(ascending=False)
print(yourdf)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...