自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

一日一技:Pandas 中,如何分組再取 N項?

開發(fā) 前端
在 pandas 中,DataFrame 是我們經常用到的工具。有時候,我們可能會需要對數(shù)據按某個字段進行分組,然后每個組取N項。

[[356974]]

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

 

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

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

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

 

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

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

 

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

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

如下圖所示:

 

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

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

 

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

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

 

 

至此,問題完美解決。

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

 

責任編輯:武曉燕 來源: 未聞Code
相關推薦

2021-10-15 21:08:31

PandasExcel對象

2022-03-12 20:38:14

網頁Python測試

2023-10-28 12:14:35

爬蟲JavaScriptObject

2022-06-28 09:31:44

LinuxmacOS系統(tǒng)

2024-07-30 08:11:16

2024-07-30 08:16:18

Python代碼工具

2021-07-27 21:32:57

Python 延遲調用

2024-11-11 00:38:13

Mypy靜態(tài)類型

2021-05-08 19:33:51

移除字符零寬

2021-06-08 21:36:24

PyCharm爬蟲Scrapy

2021-04-27 22:15:02

Selenium瀏覽器爬蟲

2021-04-12 21:19:01

PythonMakefile項目

2023-09-06 00:15:04

Pandas技巧格式

2020-05-19 13:55:38

Python加密密碼

2022-03-07 09:14:04

Selenium鼠標元素

2024-02-20 22:13:48

Python項目Java

2024-08-27 22:08:13

2021-02-14 22:22:18

格式圖片 HTTP

2021-03-12 21:19:15

Python鏈式調用

2021-09-13 20:38:47

Python鏈式調用
點贊
收藏

51CTO技術棧公眾號