我的任务:
对于下一组问题,我们将使用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()
函数,但无法正常工作。
如果有人知道解决此问题的另一种方法,我将不胜感激。
答案 0 :(得分:0)
groupby
仅返回一个groupby对象,您必须指定要在该对象上使用的聚合函数,例如
df.groupby(by='STNAME').aggregate({'COUNTY': 'nunique'}).idxmax()[0]
给予
'Texas'
有关分组/聚合的介绍,请参见the pandas docs here。