如何在数据框中找到三个最大值?

esh*_*pal 3 python group-by dataframe python-3.x pandas

有问题的数据集:

在此处输入图片说明

对于上图中显示的数据集,我试图找到三个人口最多的州,同时只考虑每个州的三个人口最多的县。我用CENSUS2010POP.

此函数应返回一个字符串值列表(按人口最多到人口最少的顺序)。

以下是我的代码:

x=census_df.groupby('STNAME')['CENSUS2010POP'].nlargest(3)
Run Code Online (Sandbox Code Playgroud)

此语句返回一个序列,其中将每个州的三个人口最多的县进行分组。

现在,除此之外我该怎么做才能进一步找到人口最多的州?

我是使用循环还是有另一种有效的方法来解决这个问题?

paw*_*lty 5

尝试将 sum() 添加到函数中:

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)
Run Code Online (Sandbox Code Playgroud)

输出:

STNAME
New York    12860000
Alabama       482000
Alaska        187000
Name: CENSUS2010POP, dtype: int64
Run Code Online (Sandbox Code Playgroud)