Найти максимальный счет в сгруппированном кадре данных

Это возвращает список, содержащий все элементы в баре, которые имеют обитателей> 1.

-2
задан ncfirth 13 July 2018 в 10:10
поделиться

1 ответ

Мне кажется groupby на первом уровне MultiIndex с idxmax , а затем выберите строки по loc:

df = pd.DataFrame({'club':list('AABBCC'),
                   'min':[4,5,4,5,5,4],
                   'mean':[7,8,9,4,2,3],
                   'max':[1,3,5,7,1,0],
                   'count':[5,3,6,9,2,4],
                   'nationality':list('aaabbb')}).set_index(['club','nationality'])

print (df)
                  min  mean  max  count
club nationality                       
A    a              4     7    1      5
     a              5     8    3      3
B    a              4     9    5      6
     b              5     4    7      9
C    b              5     2    1      2
     b              4     3    0      4

df = df.loc[df.groupby(level=1)['count'].idxmax()]
print (df)
                  min  mean  max  count
club nationality                       
B    a              4     9    5      6
     b              5     4    7      9

Подробности:

print (df.groupby(level=1)['count'].idxmax())
nationality
a    (B, a)
b    (B, b)
Name: count, dtype: object
1
ответ дан jezrael 17 August 2018 в 13:18
поделиться
  • 1
    Мне нужно найти максимальных игроков, из которых нация для клубов a, b, c, d, e и f. – ShreyGrover 13 July 2018 в 09:09
  • 2
    @ShreyGrover - ОК, тогда нужно df.loc[df.groupby(level=0)['count'].idxmax()] – jezrael 13 July 2018 в 09:10
  • 3
    @ShreyGrover - Btw, будьте свободны изменять свой вопрос с помощью некоторых выборочных данных (например, скопируйте мой DataFrame для предотвращения downvotes) – jezrael 13 July 2018 в 09:14
Другие вопросы по тегам:

Похожие вопросы: