Как разделить DataFrame на группы с помощью метки индекса и выполнить операцию, чтобы найти 3 самых больших в определенном столбце в соответствии с каждым индексом - PullRequest
1 голос
/ 30 мая 2020

У меня есть такой фрейм данных:

STNAME         CTYNAME           POPESTIMATE    
Alabama        Autauga County     54660
Alabama        Baldwin County     183193
Alabama        Barbour County     27341
Alabama        Bibb County        22861
Alabama        Blount County      57373  
.......        ...............    .....
Wyoming        Sweetwater County  43593
Wyoming        Teton County       21297
Wyoming        Uinta County       21102

.......      .............      ......  
.......        .............       .....  

and so on............  

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

1 Ответ

0 голосов
/ 30 мая 2020

Разделение df:

df = df.groupby('STNAME',as_index=True)
print(df.apply(lambda s: pd.Series(s.nlargest(3).index)))
...