Я борюсь с фреймворком данных, в котором перечислены большие объемы данных, которые имеют несколько уровней фильтрации, если это имеет смысл. Таким образом, мои данные теперь отсортированы по имени штата в алфавитном порядке. Второй уровень фильтрации применяется к совокупным данным для каждого округа. Используемая фильтрация была df.sort_values()
. Теперь мне нужно извлечь самые высокие три подсчета графства в штате, и я не понимаю, как это сделать.Возвращение nlargest для вложенного отсортированного фрейма данных с использованием Pandas
Так мои данные выглядит примерно так (я опустил индекс строки здесь):
State County Population
Alabama a 100
Alabama b 50
Alabama c 40
Alabama d 5
Alabama e 1
...
Wyoming a.51 180
Wyoming b.51 150
Wyoming c.51 56
Wyoming d.51 5
Теперь то, что я хочу от dataframe, чтобы получить самый высокий заселенных округов за состояние. Не работая с пандами, я предпочел бы сделать это. Что-то вроде этого (очевидно erronous):
list_l = []
for i in df['State'].unique(): #Get a series with every unique state listed once
list_l.append(df[(df['State'] == i])).nlargest(3)
return list_l
Даже когда печатаю это я знаю, это не в полной мере имеет смысл, но я не знаю, как объяснить это лучше. Надеюсь, кто-то может помочь.
Приветствия
К сожалению вы после 'df.groupby ('State') [ 'населения'] nlargest (. 3) '? – EdChum
Вы используете индекс из приведенного выше фрагмента кода для индексации в основной файл df: 'df.loc [df.groupby ('State') ['Population']. Nlargest (3) .index.get_level_values (1)]' – EdChum
Привет, да, это то, что мне нужно. Я все еще склоняюсь к мысли о том, как думать о пандах. – gaatjeniksaan