查找具有最大行数的索引

时间:2019-07-04 08:24:39

标签: python pandas data-science

我的任务:

对于下一组问题,我们将使用United States Census Bureau中的普查数据。县是美国各州的政治和地理分区。此数据集包含2010年至2015年美国各县和州的人口数据。See this document用于描述变量名。

人口普查数据集(census.csv)应该作为census_df加载。适当地回答这个问题。

问题5

哪个州的县最多? (提示:请仔细考虑sumlevel键!以后您也将需要此键...)

此函数应返回单个字符串值。

census_df = pd.read_csv('census.csv')
census_df = census_df[census_df['SUMLEV']==50]
census_df_2 = census_df.groupby(by='STNAME',axis=0)

但是,这不会将数据帧按'STNAME'分组,这在执行census_df_2.head()

时可以看到

我想这应该适用于分组的DataFrame:

def answer_five():
    return census_df_2[ census_df_2['COUNTY'].count() == max( census_df_2['COUNTY'].count() ) ].index().tolist()[0]
answer_five()

为什么groupby函数不起作用?我尝试更改轴并改用set_index()函数,但无法正常工作。

如果有人知道解决此问题的另一种方法,我将不胜感激。

1 个答案:

答案 0 :(得分:0)

groupby仅返回一个groupby对象,您必须指定要在该对象上使用的聚合函数,例如

df.groupby(by='STNAME').aggregate({'COUNTY': 'nunique'}).idxmax()[0]

给予

'Texas'

有关分组/聚合的介绍,请参见the pandas docs here