天天看點

diff函數

OUTLINE

  • 問題場景
  • 解決方案

問題場景

假設我有一份記錄檔資料,其中一個特征是操作app的時間,時間結構譬如“2018-03-13 23:26:19”,我想知道上一次操作跟下一次操作的間隔時間是多少?

diff函數

解決方案

關于某列或者某行資料的差分自然要想到python中的diff函數,無論是在pandas中還是在numpy裡面都可以直接調用。

在numpy中:

調用方法:

a 表示需要進行差分操作的資料

n 代表執行幾次內插補點

axis:預設是-1。

在pandas中:

調用方法:

dataframe.diff(periods,axis)
           

dataframe:可以是直接對dataframe結構進行diff,也可以是Series,另外還可以是進行聚合或者其他操作之後的Series

periods:表示移動的幅度。它是任意整數,如果是想讓資料統一向下移動n個periods,則n為正,如果是想讓資料向上移動n個periods,則n為負

axis:表示參考軸。如果axis=0,則是進行行間的移動差分操作,如果axis=1,則進行列間的移動差分操作。

例子:

import pandas as pd
import numpy as np
data = pd.DataFrame(np.random.randint(low=1,high=10,size=(4,1)))
data
# 輸出:
           
diff函數
data.diff(2)
# 輸出:
           
diff函數
data.diff(-1)
# 輸出:
           
diff函數