2017-01-18 4 views
-1

Набор данных в вопросе:Как найти три самых больших значения в кадре данных?

enter image description here

Для набора данных шоу на изображении выше, я пытаюсь найти три наиболее густонаселенные государства, а лишь принимая во внимание три наиболее густонаселенных округов для каждого государство. Я использую CENSUS2010POP.

Эта функция должна возвращать список строковых значений (в порядке наибольшей совокупности до самой низкой совокупности).

Ниже мой код:

x=census_df.groupby('STNAME')['CENSUS2010POP'].nlargest(3) 

Этот оператор возвращает ряд, в котором она группирует три самых густонаселенных округов каждого государства.

Теперь, что я делаю дальше этого, чтобы найти самые густонаселенные государства?

Я использую петли или есть другой эффективный метод, чтобы приблизиться к этому?

ответ

1

Попробуйте добавить сумму() функции:

df = pd.DataFrame({'STNAME': ['Alabama', 'Alabama', 'Alabama', 'Alabama', 'Alaska', 'Alaska', 'Alaska', 'Alaska','New York', 'New York', 'New York', 'New York', 'California'], 
        'CTYNAME': ['a', 'b', 'c', 'd', 'z', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l'], 
        'CENSUS2010POP': [120000, 230000, 89000, 43000, 23000, 34000, 120000, 10000, 1200000, 1300000, 9800000, 560000, 45000]}) 

x=df.groupby('STNAME')['CENSUS2010POP'].sum().nlargest(3) 

Выход:

STNAME 
New York 12860000 
Alabama  482000 
Alaska  187000 
Name: CENSUS2010POP, dtype: int64 
Смежные вопросы