pandas 时间序列差处理
搞比赛的时候想分析一下用户的购买间隔(数据集是一段时间内的订单,也就是一个用户可能有多次记录)。简单记录一下
1. 把object类型的时间转为时间戳,这里用到了time模块
raw['timestamp'] = raw['order_pay_time'].apply(lambda x:time.mktime(time.strptime(x,'%Y-%m-%d %H:%M:%S')))
2. 先按照'customer_id'分组,分组之后对每个分组里的时间序sort之后逐个求差(用好diff以及serise基本的访问就好了)
def fun_c(x): x.sort_values() print(x) tmp = x.diff() tmp.iloc[0] = x.iloc[0] return tmp raw.groupby('customer_id')['timestamp'].apply(fun_c)