Проверка верхних значений для столбцов данных в Python - PullRequest
0 голосов
/ 05 ноября 2018

У меня большой набор данных, который выглядит следующим образом:

Shop              Date           Hour Ending         Hours Operating        Produced   
Cornerstop        01-01-2010          0                     1                   9
Cornerstop        01-01-2010          1                     1                   11
Cornerstop        01-01-2010          2                     1                   10
. 
.

Cornerstop        01-01-2010          23                    1                   0
Leaf Grove        01-01-2010          0                     1                   7
Leaf Grove        01-01-2010          1                     1                   4
Leaf Grove        01-01-2010          2                     1                   2

Я хочу узнать, какие магазины входят в топ-20 по тому, сколько они произвели. Я использовал data.describe() для проверки верхнего процентиля, но это не помогает мне, потому что, если я установлю порог на верхнем процентиле 'Произведено', некоторые данные будут потеряны.

Это вопрос новичка, но как я могу легко выбрать и нацелиться на эти лучшие магазины на основе этих критериев? Возможно, используйте процентиль только для того, чтобы создать ряд лучших магазинов и просто вырезать их из набора данных? Чувствуется, что есть гораздо лучший способ сделать это.

Ответы [ 3 ]

0 голосов
/ 05 ноября 2018

Как насчет следующего, чтобы отсортировать столбец и затем взять верхние 20?

df= df.sort_values(['Produced'], ascending=[False])
df.head(20)
0 голосов
/ 05 ноября 2018

Использование .nlargest

df.groupby('Shop').Produced.sum().nlargest(20)

Добавьте .index.tolist(), если вам нужен только список магазинов.

0 голосов
/ 05 ноября 2018

Используйте sort_values() и head():

df.sort_values('Produced', ascending=False).head(20)

Если вы хотите суммировать производственные значения для каждого магазина, а затем сортировать, вы можете сделать:

df.groupby('Shop').agg({'Produced': 'sum'}).sort_values('Produced', ascending=False).head(20)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...