数据来自美国人口普查局。县是美国各州的政治和地理分支。该数据集包含2010年至2015年美国各县和州的人口数据。
哪个州拥有最多的县? (提示:仔细考虑sumlevel键!你以后也需要这个问题......)
我无法从代码中获取县名。请帮忙
我的代码:
import pandas as pd
import numpy as np
census_df = pd.read_csv('census.csv')
census_df.head()
def answer_five():
return census_df.groupby('STNAME').COUNTY.sum().max()
answer_five()
答案 0 :(得分:2)
以下是对我有用的答案:
def answer_five():
return census_df.groupby(["STNAME"],sort=False).sum()["COUNTY"].idxmax()
第一部分创建聚合df
census_df.groupby(["STNAME"],sort=False).sum()
第二部分需要你需要的颜色
["COUNTY"].idxmax()
并返回与max对应的索引值,检查here
答案 1 :(得分:1)
只需更正整个代码。
首先,根据来源,50 SUMLEV
表示该行是一个县。有两种方法可以解答这个问题。
思考过程(在Excel中思考它):
您想要计算每个州组中“县行”的数量。
首先,创建掩码/条件以选择所有SUMLEV == 50
(“县行”)。
然后按STNAME
对它们进行分组。
然后使用.size()
计算每个分组中的行数。
# this is it!
def answer_five():
mask = (census_df.SUMLEV == 50)
max_index = census_df[mask].groupby('STNAME').size().idxmax()
return max_index
# not so elegant
def answer_five():
census_df['Counts'] = 1
mask = (census_df.SUMLEV == 50)
max_index = census_df[mask].groupby('STNAME')['Counts'].sum().idxmax()
return max_index
欢迎你。 https://pandas.pydata.org/pandas-docs/stable/generated/pandas.core.groupby.GroupBy.size.html
答案 2 :(得分:1)
def answer_five():
new_df = census_df[census_df['SUMLEV'] == 50]
x = new_df.groupby('STNAME')
return x.count()['COUNTY'].idxmax()
answer_five()
答案 3 :(得分:0)
从.max()
到idxmax()
的更改会返回STNAME
的正确值,而不是大整数。
答案 4 :(得分:0)
我们也可以使用sum()函数来解决这个问题
def answer_five():
return census_df.groupby(["STNAME"]).sum()["COUNTY"].idxmax()
使用sum(),它将对COUNTY列中的所有值求和,我们可以从中应用idxmax()来找到县数最高的州。
答案 5 :(得分:0)
def answer_five():
county = census_df[census_df['SUMLEV']==50]
county = county.groupby(['STNAME']).count()
return county['SUMLEV'].idxmax(axis=0)
answer_five()
答案 6 :(得分:0)
实际上,您可以只计算州一级的数字,而不必查看县的详细信息。
这应该可行:
census_df[census_df['SUMLEV']==50].groupby(['STNAME']).size().idxmax()
答案 7 :(得分:0)
import pandas as pd
def answer_five():
df=census_df.groupby(['STNAME'])
df=df.sum();
fd=df['COUNTY'].max()
df=df[df['COUNTY']==fd]
return df.index[0]
answer_five()
答案 8 :(得分:-1)
n = 10