панды - фильтровать строки с наибольшей суммой - PullRequest
0 голосов
/ 06 мая 2018

В приведенном ниже коде показано количество записей категорий (b для business, e для entertainment, t для science/technology, m для health) для каждого уникального издателя. Где мне нужна помощь, так это фильтрация в первую десятку издателей с наибольшим общим количеством записей категорий.

pub_cat_group = headline_df.groupby(['PUBLISHER', 'CATEGORY'])['TITLE'].count()
pub_cat_group

100.7 WZLX Classic Rock                               b             1
                                                      e            11
1011now                                               b             2
                                                      e             2
                                                      m             7
                                                      t            11
106 JACK fm                                           b             8
                                                      t             1

Я знаю, как получить наибольшее количество отдельных категорий (см. Код ниже), но я не знаю, как смешать эту логику с приведенным выше кодом.

top_pub_cats = headline_df['CATEGORY'].groupby(headline_df['PUBLISHER']).value_counts().sort_values().nlargest(10)

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

1 Ответ

0 голосов
/ 06 мая 2018

Основываясь на вашем описании, я думаю, что вам нужно

pub_cat_group = headline_df.groupby(['PUBLISHER', 'CATEGORY'])['TITLE'].count()
# I am adding the unstack, here for you to plot 
New=pub_cat_group.sort_values().groupby(level=[0,1]).head(10).unstack()

Обновление:

pub_cat_group.sum(level=0).sort_values().head(10)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...