Сравнение нарезки нескольких индексов - PullRequest
0 голосов
/ 22 мая 2018

Я работаю с набором данных имен детей из: https://raw.githubusercontent.com/hadley/data-baby-names/master/baby-names.csv

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

"year","name","percent","sex"
1880,"John",0.081541,"boy"
1880,"William",0.080511,"boy"
1880,"James",0.050057,"boy"
1880,"Charles",0.045167,"boy"
1880,"George",0.043292,"boy"
1880,"Frank",0.02738,"boy"
1880,"Joseph",0.022229,"boy"

Я сгруппировал все имена вместе и суммировал процентыдля мальчика и девочки с:

data1.groupby(['name','sex'])[['percent']].sum()

, который создает мультииндексированный фрейм данных:

   Name    Sex  Percent

   Aaron   boy  0.292292
           girl 0.000805
   Abagail girl 0.001326
   Abbie   boy  0.000092
           girl 0.022804

Для каждого имени я хочу вернуть более высокий процент пола в новом фрейме данныхчто бы хотелось:

   Name    Sex  Percent

   Aaron   boy  0.292292
   Abagail girl 0.001326
   Abbie   girl 0.022804

Я просматривал многоиндексную документацию , но не смог понять это.Любая помощь приветствуется.

1 Ответ

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

Вы можете использовать groupby tail после groupby sum

s=df.groupby(['name','sex'])[['percent']].sum()
s.sort_values('Percent').groupby(level=0).tail(1)
...