python對(duì)列進(jìn)行平移變換的方法(shift)
在進(jìn)行數(shù)據(jù)操作時(shí), 經(jīng)常會(huì)碰到基于同一列進(jìn)行錯(cuò)位相加減的操作, 即對(duì)某一列進(jìn)行向上或向下平移(shift).
往常, 我們都會(huì)使用循環(huán)進(jìn)行操作, 但經(jīng)過查閱相關(guān)資料, 發(fā)現(xiàn)結(jié)合pandas里的groupby和shift兩個(gè)函數(shù)就能輕松實(shí)現(xiàn)上述要求.
#創(chuàng)建樣例數(shù)據(jù)
temp = pd.DataFrame({'id':[1,1,1,2,2,3],'value':[1,2,3,4,5,6]});temp
Out[1]: id value 0 1 1 1 1 2 2 1 3 3 2 4 4 2 5 5 3 6
temp['value_shift'] = temp.groupby('id')['value'].shift(1);temp
Out[180]:
id value value_shift
0 1 1 NaN
1 1 2 1.0
2 1 3 2.0
3 2 4 NaN
4 2 5 4.0
5 3 6 NaN
temp['value_shift_1'] = temp.groupby('id')['value'].shift(-1);temp
Out[181]:
id value value_shift value_shift_1
0 1 1 NaN 2.0
1 1 2 1.0 3.0
2 1 3 2.0 NaN
3 2 4 NaN 5.0
4 2 5 4.0 NaN
5 3 6 NaN NaN
通過shift函數(shù)里面的值來控制向前還是向后偏移, 缺少的值會(huì)填充NaN.
groupby函數(shù)里的參數(shù)控制基于什么字段進(jìn)行shift.
官方文檔 這里是以index為基準(zhǔn).
以上這篇python對(duì)列進(jìn)行平移變換的方法(shift)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
基于Python實(shí)現(xiàn)倒計(jì)時(shí)工具
這篇文章主要為大家詳細(xì)介紹了基于Python實(shí)現(xiàn)倒計(jì)時(shí)工具,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-08-08
Django實(shí)現(xiàn)發(fā)送郵件找回密碼功能
在各大網(wǎng)站上,一定都遇到過找回密碼的問題,通常采用的方式是通過發(fā)送帶有驗(yàn)證碼的郵件進(jìn)行身份驗(yàn)證,本文將介紹通過Django實(shí)現(xiàn)郵件找回密碼功能,需要的朋友可以參考下2019-08-08
Python實(shí)現(xiàn)國(guó)外賭場(chǎng)熱門游戲Craps(雙骰子)
這篇文章主要介紹了Python實(shí)現(xiàn)國(guó)外賭場(chǎng)熱門游戲Craps(雙骰子)的源碼及運(yùn)行方法,十分簡(jiǎn)單,有需要的小伙伴可以參考下。2015-03-03
python網(wǎng)絡(luò)爬蟲學(xué)習(xí)筆記(1)
這篇文章主要為大家詳細(xì)介紹了python網(wǎng)絡(luò)爬蟲學(xué)習(xí)筆記的第一篇,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-04-04
python使用numpy尋找二維數(shù)組的最值及其下標(biāo)方法分析
這篇文章主要為大家介紹了python使用numpy尋找二維數(shù)組的最值及其下標(biāo)實(shí)現(xiàn)方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08
pytorch 實(shí)現(xiàn)在預(yù)訓(xùn)練模型的 input上增減通道
今天小編就為大家分享一篇pytorch 實(shí)現(xiàn)在預(yù)訓(xùn)練模型的 input上增減通道,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-01-01

