python對列進行平移變換 shift

2021-08-09 18:35:37 字數 1100 閱讀 5624

在進行資料操作時, 經常會碰到基於同一列進行錯位相加減的操作, 即對某一列進行向上或向下平移(shift).

往常, 我們都會使用迴圈進行操作, 但經過查閱相關資料, 發現結合pandas裡的groupbyshift兩個函式就能輕鬆實現上述要求.

#建立樣例資料

temp = pd.dataframe();temp

out[1]:

id value01

1112

2133

2442

5536

temp['value_shift'] = temp.groupby('id')['value'].shift(1);temp

out[180]:

id value value_shift01

1 nan11

21.021

32.032

4 nan42

54.053

6 nan

temp['value_shift_1'] = temp.groupby('id')['value'].shift(-1);temp

out[181]:

id value value_shift value_shift_101

1 nan 2.011

21.0

3.0213

2.0 nan32

4 nan 5.042

54.0 nan53

6 nan nan

通過shift函式裡面的值來控制向前還是向後偏移, 缺少的值會填充nan.

groupby函式裡的引數控制基於什麼字段進行shift.

官方文件 這裡是以index為基準.

Python之OpenGL筆記 8 平移變換

1 使用glsl實現圖形的平移。平移變換的任務是將乙個物件沿著乙個任意長度和方向的向量移動。對於三維空間上的一點 x,y,z 我們使用4 4齊次矩陣的形式來表示平移變換 使用四維向量來表示三維向量的做法稱作齊次座標,這對3d圖形學來說普遍而又實用。向量的第四個分量稱之為 w 事實上,我們在以前教程中...

避免對索引列進行計算

原文 避免對索引列進行計算 作業系統 windows 2007 資料庫版本 sql server 2005 發表日期 2014 11 07 16 56 01 今天同事讓我看一條sql,說是在前台查詢很快,但是把sql取出來,在資料庫中執行的時候,跑10分鐘都不出結果。看了一下sql,最後定位到乙個檢...

用matlab對訊號進行傅利葉變換

傅氏變換分析是訊號分析中很重要的方法,借助matlab可以很方便的對各類訊號進行傅氏頻域分析。本文介紹了集中離散的傅氏變換以及matlab實現方法。1.離散序列的傅利葉變換dtft discrete time fourier transform 1 n 8 原離散訊號有8點 2 n 0 1 n 1 ...