OUTLINE
- 问题场景
- 解决方案
问题场景
假设我有一份操作日志数据,其中一个特征是操作app的时间,时间结构譬如“2018-03-13 23:26:19”,我想知道上一次操作跟下一次操作的间隔时间是多少?
解决方案
关于某列或者某行数据的差分自然要想到python中的diff函数,无论是在pandas中还是在numpy里面都可以直接调用。
在numpy中:
调用方法:
numpy.diff(a, n=1,axis=-1)
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
# 输出:
data.diff(2)
# 输出:
data.diff(-1)
# 输出: