Как мне вернуть имя в столбце с максимальным значением в наборе данных при использовании groupby()

#python #pandas #dataframe

#питон #панды #фрейм данных

Вопрос:

Столбец зарплата содержит два набора строк: '>50K' и '<=50K' использование pandas

вот как выглядит мой текущий код:

 df.loc[df['salary'] == '>50K'].groupby('native-country')['native-country'].count().tail()
 

он возвращает:

 native-country
Thailand              3
Trinadadamp;Tobago       2
United-States      7171
Vietnam               5
Yugoslavia            6
 

чтобы получить страну с максимальным значением, я использовал этот код:

 df.loc[df['salary'] == '>50K'].groupby('native-country')['native-country'].count().sort_values(ascending = False)[0]
 

который возвращает: 7171 максимальное значение, которое я понимаю.

Как мне вернуть название страны? Т.е.: Соединенные Штаты?

Любое предложение будет оценено по достоинству

Комментарии:

1. Использовать df.loc[df['salary'] == '>50K'].groupby('native-country')['native-country'].count().sort_values(ascending = False).index[0]

Ответ №1:

Вы почти на месте. Все, что вам нужно, это воспользоваться функциями max и idxmax в pandas:

 df.loc[df['salary'] == '>50K'].groupby('native-country')['native-country'].count().idxmax()