2017-01-09 12 views
-13

データは米国国勢調査局からのものです。郡は、米国の政治的および地理的な州の細分です。このデータセットには、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() 
+2

この質問にはサンプルデータやデータのフィルタリングの試みは含まれていません。さらに、この質問は宿題のように見えますので、ここでもっと努力する必要があります – EdChum

+5

あなたの宿題のエクササイズをコピーしましたか? –

+1

答えはこちら[こちら](http://stackoverflow.com/q/40957458/2901002) – jezrael

答えて

2

は私のために働いていた答えである:

def answer_five(): 
    return census_df.groupby(["STNAME"],sort=False).sum()["COUNTY"].idxmax() 

最初の部分は、2番目の部分はCOL表示されます

census_df.groupby(["STNAME"],sort=False).sum() 

dfを集約作成必要性

最大でインデックスに対応

と戻り値は、here

+0

これは私に間違って見えます。 COUNTYは、[co-est2015-alldata.pdf] [1]によると、可変intであるFIPSコードです。コードと説明に基づいて、> = 1である可能性があるこれらのintを合計していると考えています。これは1対1の関係ではありません。ここで起こるべきことは、SUMLEV = 50の場合、+ = 1のソフトです。 [1]:https://www2.census.gov/programs-surveys/popest/technical-documentation/file-layouts/2010-2015 /co-est2015-alldata.pdf – Eric

-1
def answer_five(): 
    return census_df.groupby('STNAME')['CTYNAME'].count().idxmax() 
+0

このコードでは質問に答えることができますが、問題の解決方法および/または理由を説明する追加のコンテキストを提供すると、回答の長期的価値が向上します。 –

0

をチェックこれはSTNAMEの正しい値ではなく大きい整数を返す.max()からidxmax()への変化です。

0

コード全体を修正してください。

最初に、ソースによると、SUMLEVは50行が郡であることを意味します。これに答える2つの方法。

思考プロセス(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