如何将.agg应用于数据框中的前n项

时间:2017-11-20 01:49:26

标签: python pandas numpy

我正在尝试撤回从较大数据集的前4项计算的数据框对象。为此,我已经创建了一个数据框census_df,然后编写了以下内容

return (census_df.set_index('STNAME','COUNTY')
            .nlargest(4,'CENSUS2010POP')
            .groupby(level=0)['CENSUS2010POP']
            .agg([{'Sum':np.sum}]))

返回四个最大的县而不是所有州,其人口由这四个州内的四个最大县估算。 我尝试使用

return (census_df.set_index('STNAME','COUNTY')
            .nlargest(4,'CENSUS2010POP')
            .groupby(level=0)['CENSUS2010POP']
            .agg([{'Sum':np.argsort()[-3:].sum()}]))

argsort缺少一个位置参数,我不知道该放什么 - argsort甚至会引用什么?

1 个答案:

答案 0 :(得分:1)

IIUC

census_df.set_index('STNAME','COUNTY').\
      groupby(level=0)['CENSUS2010POP'].\
         agg(lambda x: x.head(4).sum())