當需要統計不同週期的變化情況時,需要使用資料偏移,在python
中使用shift
函式實現。
# 一階差分
diff_num = num - num.shift(1)
import pandas as pd
dic =
data = pd.dataframe(dic)
print(data)
``` id num
0 1 4
1 2 2
2 2 7
3 3 10
4 3 5
5 3 5
```
通過shift
函式實現資料的上下偏移,使用語法:
df.shift(periods=1, freq=none, axis=0)
# 所有字段向下偏移一行
data.shift(1)
``` id num
0 nan nan
1 1.0 4.0
2 2.0 2.0
3 2.0 7.0
4 3.0 10.0
5 3.0 5.0
```# 所有字段向上偏移一行
data.shift(-1)
``` id num
0 2.0 2.0
1 2.0 7.0
2 3.0 10.0
3 3.0 5.0
4 3.0 5.0
5 nan nan
```# 所有欄位向右偏移一列
data.shift(1, axis=1)
``` id num
0 nan 1.0
1 nan 2.0
2 nan 2.0
3 nan 3.0
4 nan 3.0
5 nan 3.0
```# 所有欄位向左偏移一列
data.shift(-1, axis=1)
``` id num
0 4.0 nan
1 2.0 nan
2 7.0 nan
3 10.0 nan
4 5.0 nan
5 5.0 nan
```
# 全部偏移
data["last_num"] = data["num"]
data["last_num"] = data["last_num"].shift(1).fillna(0)
``` id num last_num
0 1 4 0.0
1 2 2 4.0
2 2 7 2.0
3 3 10 7.0
4 3 5 10.0
5 3 5 5.0
```# 按id分組偏移
data["last_num"] = data.groupby("id")["num"].shift(1).fillna(0)
data["diff_num"] = data["num"] - data["last_num"]
``` id num last_num diff_num
0 1 4 0.0 4.0
1 2 2 0.0 2.0
2 2 7 2.0 5.0
3 3 10 0.0 10.0
4 3 5 10.0 -5.0
5 3 5 5.0 0.0
```
Shift 後門 簡單學習
提出問題 整個過程並不複雜,但要實現攻擊的前提條件,是已經打入目標主機,將c windows system32 sethc.exe替換成c windows system32 cmd.exe,所以這一步到底要如何做到?就是windows系統自帶的 5次shift鍵強制開啟c windows syste...
python對列進行平移變換 shift
在進行資料操作時,經常會碰到基於同一列進行錯位相加減的操作,即對某一列進行向上或向下平移 shift 往常,我們都會使用迴圈進行操作,但經過查閱相關資料,發現結合pandas裡的groupby和shift兩個函式就能輕鬆實現上述要求.建立樣例資料 temp pd.dataframe tempout ...
python教學筆記 python學習筆記(一)
1.eval 函式 eval是單詞evaluate的縮寫,就是 求.的值的意思。eval 函式的作用是把str轉換成list,dict,tuple.li 1 1,2,3 print eval li 1 di 1 print eval di 1 tu 1 2,4,6 print eval tu 1 執...