我有一个熊猫数据框,有三列,State_Name,County_Name,Population。人口是一个数字数据。我想要回答的问题是,只看每个州人口最多的三个县,人口最多的三个州是什么。所以我想首先我需要对State_Name和County_Name进行分组。我能做到。但在那之后,我对如何继续下去感到困惑。我刚接触熊猫,所以指导会有所帮助。
发布于 2016-11-13 18:22:17
这里有一些虚拟数据(请在将来始终包括您的数据样本)。
State_Name,County_Name,Population
State1,State1_A,100
State1,State1_B,8000
State1,State1_C,75
State1,State1_D,876
State1,State1_E,2938
State2,State2_A,200
State2,State2_B,16000
State2,State2_C,75
State2,State2_D,876
State2,State2_E,5876让我们将索引设置为State_Name和County_Name,并选择'Population‘列,这样我们就可以返回一个多索引pandas.Series
df = pd.read_clipboard() # Could have done index_col=[0,1] here
df = df.set_index(['State_Name','County_Name'])
s = df.Population现在你可以做Series.groupby,然后在上面使用nlargest (不能在数据帧上工作,这就是为什么我使用系列):
s.groupby(level='State_Name').nlargest(3)
State_Name State_Name County_Name
State1 State1 State1_B 8000
State1_E 2938
State1_D 876
State2 State2 State2_B 16000
State2_E 5876
State2_D 876
Name: Population, dtype: int64https://stackoverflow.com/questions/40570951
复制相似问题