python對列進(jìn)行平移變換的方法(shift)
在進(jìn)行數(shù)據(jù)操作時, 經(jīng)常會碰到基于同一列進(jìn)行錯位相加減的操作, 即對某一列進(jìn)行向上或向下平移(shift).
往常, 我們都會使用循環(huán)進(jìn)行操作, 但經(jīng)過查閱相關(guān)資料, 發(fā)現(xiàn)結(jié)合pandas里的groupby和shift兩個函數(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ù)里面的值來控制向前還是向后偏移, 缺少的值會填充NaN.
groupby函數(shù)里的參數(shù)控制基于什么字段進(jìn)行shift.
官方文檔 這里是以index為基準(zhǔn).
以上這篇python對列進(jìn)行平移變換的方法(shift)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python實現(xiàn)國外賭場熱門游戲Craps(雙骰子)
這篇文章主要介紹了Python實現(xiàn)國外賭場熱門游戲Craps(雙骰子)的源碼及運行方法,十分簡單,有需要的小伙伴可以參考下。2015-03-03
python網(wǎng)絡(luò)爬蟲學(xué)習(xí)筆記(1)
這篇文章主要為大家詳細(xì)介紹了python網(wǎng)絡(luò)爬蟲學(xué)習(xí)筆記的第一篇,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-04-04
python使用numpy尋找二維數(shù)組的最值及其下標(biāo)方法分析
這篇文章主要為大家介紹了python使用numpy尋找二維數(shù)組的最值及其下標(biāo)實現(xiàn)方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08
pytorch 實現(xiàn)在預(yù)訓(xùn)練模型的 input上增減通道
今天小編就為大家分享一篇pytorch 實現(xiàn)在預(yù)訓(xùn)練模型的 input上增減通道,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-01-01

