режим столбца в кадре данных на основе другого столбца - PullRequest
2 голосов
/ 08 марта 2019

Представьте, что у меня есть фрейм данных под названием «страны» с несколькими столбцами, включая страну и соответствующие им особенности.

Country   Idiosyncracies
Brazil    We love football
France    We love love
Italy     We love Pizza
Italy     We love Pizza
Italy     We love Gellato
Brazil    We love festivals
Italy     We love Pizza
France    We love bread
France    We love bread
France    We love bread
Italy     We love Gellato
Italy     We love Pizza
Brazil    We love football

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

Country    Top comment        
Brazil     We love football    
France     We love bread       
Italy      We love Pizza       

Это фрагмент кода, который я пробовал

grouped = countries('Country')['Idiosyncracies'].mode()[0])

Однако вместо получения (3,2) фрейма данных я получаю сообщение об ошибке

TypeError: 'DataFrame' object is not callable

1 Ответ

1 голос
/ 08 марта 2019

Используйте GroupBy.apply с Series.iat для выбора первого значения:

df = (countries.groupby('Country')['Idiosyncracies']
               .apply(lambda x: x.mode().iat[0])
               .reset_index())
print (df)
  Country    Idiosyncracies
0  Brazil  We love football
1  France     We love bread
2   Italy     We love Pizza
...