【发布时间】:2019-11-14 22:35:00
【问题描述】:
我的任务:
对于下一组问题,我们将使用来自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'对DataFrame进行分组,在执行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() 函数,但我无法让它起作用。
如果有人知道解决此问题的另一种方法,我将不胜感激。
【问题讨论】:
-
啊,这听起来很像家庭作业或培训问题。您甚至粘贴了提示:-) 您的意思是,该组不起作用?您是否已经尝试过应用聚合?例如类似 census_df.groupby(by='STNAME').aggregate({'county': 'nunique'})
-
分组做了一些奇怪的事情。当我执行
census_df_2.groupby('STNAME').head()时,它不会返回按状态名称分组的前五个元素,而是按索引返回原始数据帧,但仅返回索引 1-5、69-73,99-103,115-119,... 3170-3174,似乎随机选择索引。我没有尝试过,尽管我确实在某些时候使用过 .agg 失败。为什么''中的函数是唯一的?
标签: python pandas data-science