日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
一日一技:Pandas中,如何分組再取N項(xiàng)?

在 pandas 中,DataFrame 是我們經(jīng)常用到的工具。有時候,我們可能會需要對數(shù)據(jù)按某個字段進(jìn)行分組,然后每個組取N項(xiàng)。例如:

 

現(xiàn)在,我想每個職位任取三個用戶。

相信有同學(xué)會使用 for 循環(huán),依次循環(huán)每一行,每個職位選3個,存入一個臨時的列表里面。循環(huán)完成以后再轉(zhuǎn)成一個新的 DataFrame。但這個方式顯然不夠智能。

那么,我們有沒有什么辦法能夠不使用循環(huán)就做到這一步呢?也許有同學(xué)想到了使用 groupby。我們來看看效果。

 

看起來僅僅是統(tǒng)計(jì)了每個職位的數(shù)量。那么,如何才能保留所有字段呢?

實(shí)際上我們可以把.size()改成.head(3):

 

看起來這里的.head(3)似乎沒有什么作用。這個時候,我們思考一下 Python 里面,如果要使用itertools.groupby,官方文檔里面有這樣一段話:

Generally, the iterable needs to already be sorted on the same key function.

如下圖所示:

這段話告訴我們,要使用itertools.groupby,我們需要提前對被分組的字段進(jìn)行排序。

那么,我們試一試在如果提前對 DataFrame 進(jìn)行排序,然后再 groupby 會怎么樣:

 

成功了。每個職位都取了3個。

可能大家發(fā)現(xiàn)最左邊的索引是亂序,看起來不好看。那么我們還可以重設(shè)一下索引:

 

至此,問題完美解決。

本文轉(zhuǎn)載自微信公眾號「未聞Code」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請聯(lián)系未聞Code公眾號。


本文標(biāo)題:一日一技:Pandas中,如何分組再取N項(xiàng)?
當(dāng)前鏈接:http://www.dlmjj.cn/article/dppiogh.html