从pandas groupby获得前N个结果

问题描述 投票:0回答:1

我在数据集中有两列:

1)Supplier_code

2)Item_code

我用它们分组:

data.groupby(['supplier_code', 'item_code']).size()

我得到这样的结果:

supplier_code  item_code
591495         127018419     9
               547173046     1
3024466        498370473     1
               737511044     1
               941755892     1
6155238        875189969     1
13672569       53152664      1
               430351453     1
               573603000     1
               634275342     1
18510135       362522958     6
               405196476     6
               441901484    12
29222428       979575973     1
31381089       28119319      2
               468441742     3
               648079349    18
               941387936     1

我的前15名供应商使用:

supCounter = collections.Counter(datalist[3])
supDic = dict(sorted(supCounter.iteritems(), key=operator.itemgetter(1), reverse=True)[:15]) 
print supDic.keys()

这是我的15大供应商名单:

[723223131, 687164888, 594473706, 332379250, 203288669, 604236177, 
533512754, 503134099, 982883317, 147405879, 151212120, 737780569, 561901243, 
786265866, 79886783]

现在我想加入这两个,即groupby,只获得前15名供应商和项目计数。

请帮助我解决这个问题。

python python-2.7 pandas
1个回答
2
投票

IIUC,你可以qazxsw poi qazxsw poi然后qazxsw poi和qazxsw poi。进入前15名,你就完成了。

例如,用:

groupby

然后:

supplier_code

输出:

sum
© www.soinside.com 2019 - 2024. All rights reserved.