Python在groupby分組后提取指定位置記錄方法
在進(jìn)行數(shù)據(jù)分析、數(shù)據(jù)建模時(shí),我們首先要做的就是對(duì)數(shù)據(jù)進(jìn)行處理,提取我們需要的信息。下面為大家介紹一些groupby的用法,以便能夠更加方便地進(jìn)行數(shù)據(jù)處理。
我們往往在使用groupby進(jìn)行信息提取時(shí),往往是求分組后樣本的一些統(tǒng)計(jì)量(max、min,var等)。如果現(xiàn)在我們希望取一下分組后樣本的第二條記錄,倒數(shù)第三條記錄,這個(gè)該如何操作呢?我們可以通過(guò)first、last來(lái)提取分組后第一條和最后一條樣本。但如果我們要取指定位置的樣本,就沒(méi)有現(xiàn)成的函數(shù)。需要我們自己去寫了。下面我就為大家介紹如何實(shí)現(xiàn)上面的功能。
1)數(shù)據(jù)介紹
action表共有3列:userid、actionType和actionTime,分別代表用戶id,用戶行為類型和行為發(fā)生時(shí)間。具體格式如下圖所示:

2)分組操作
a = action.groupby('userid')
b = action.groupby('userid')['actionTime']
type(a)
type(b)
分組后我們可以看到a和b的數(shù)據(jù)類型是DataFrameGroupBy和SeriesGroupBy

3)取數(shù)操作
①不同用戶第二次/倒數(shù)第二次操作時(shí)間
action.groupby('userid')['actionTime'].apply(lambda i:i.iloc[1] if len(i)>1 else np.nan)
action.groupby('userid')['actionTime'].apply(lambda i:i.iloc[-2] if len(i)>1 else np.nan)
②不同用戶某種行為第二次/倒數(shù)第二次操作時(shí)間
action[action['actionType']==2].groupby('userid')['actionTime'].apply(lambda i:i.iloc[1] if len(i)>1 else np.nan)
action[action['actionType']==2].groupby('userid')['actionTime'].apply(lambda i:i.iloc[-2] if len(i)>1 else np.nan)
PS:因?yàn)橛行┯脩艨赡苤挥幸粭l記錄,直接取可能會(huì)出錯(cuò),所以我用if先做判斷。
這樣我們就可以提取分組后數(shù)據(jù)任意位置的樣本了。
以上這篇Python在groupby分組后提取指定位置記錄方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- Python技巧分享之groupby基礎(chǔ)用法詳解
- python?groupby函數(shù)實(shí)現(xiàn)分組選取最大值與最小值
- Python?groupby函數(shù)圖文詳解
- python groupby函數(shù)實(shí)現(xiàn)分組后選取最值
- 詳解python中g(shù)roupby函數(shù)通俗易懂
- python groupby 函數(shù) as_index詳解
- Python DataFrame.groupby()聚合函數(shù),分組級(jí)運(yùn)算
- Python中的groupby分組功能的實(shí)例代碼
- Python正則表達(dá)式中g(shù)roup與groups的用法詳解
相關(guān)文章
python Jupyter運(yùn)行時(shí)間實(shí)例過(guò)程解析
這篇文章主要介紹了python Jupyter運(yùn)行時(shí)間實(shí)例過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-12-12
python識(shí)別驗(yàn)證碼圖片實(shí)例詳解
這篇文章主要介紹了python識(shí)別驗(yàn)證碼圖片實(shí)例詳解,需要的朋友可以參考下2020-02-02
python使用xlrd模塊讀取excel的方法實(shí)例
Python讀取Excel表格,相比xlwt來(lái)說(shuō),xlrd提供的接口比較多,下面這篇文章主要給大家介紹了關(guān)于python使用xlrd模塊讀取excel的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-03-03
python使用paramiko模塊通過(guò)ssh2協(xié)議對(duì)交換機(jī)進(jìn)行配置的方法
今天小編就為大家分享一篇python使用paramiko模塊通過(guò)ssh2協(xié)議對(duì)交換機(jī)進(jìn)行配置的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-07-07
python實(shí)現(xiàn)簡(jiǎn)易SSL的項(xiàng)目實(shí)踐
本文主要介紹了python實(shí)現(xiàn)簡(jiǎn)易SSL的項(xiàng)目實(shí)踐,包括CA.py、server.py和client.py三個(gè)模塊,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2025-02-02
Python實(shí)現(xiàn)微博動(dòng)態(tài)圖片爬取詳解
這篇文章主要為大家介紹了如何利用Python中的爬蟲(chóng)實(shí)現(xiàn)微博動(dòng)態(tài)圖片的爬取,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起動(dòng)手試一試2022-03-03
python找出列表中大于某個(gè)閾值的數(shù)據(jù)段示例
今天小編就為大家分享一篇python找出列表中大于某個(gè)閾值的數(shù)據(jù)段示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-11-11
Python利用PyQt5制作一個(gè)獲取網(wǎng)絡(luò)實(shí)時(shí)NBA數(shù)據(jù)并播報(bào)的GUI程序
現(xiàn)在NBA聯(lián)賽也進(jìn)行到半決賽了,我們?cè)趺礃硬拍芤愿斓姆椒ǐ@取NBA的數(shù)據(jù)呢?這里我們就自己來(lái)做一個(gè)數(shù)據(jù)播報(bào)的程序,需要的朋友可以參考下2021-06-06
python BitMap算法處理20億隨機(jī)整數(shù)去重
這篇文章主要為大家介紹了python BitMap算法處理20億隨機(jī)整數(shù)去重,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-01-01

