pandas的shift和diff介绍,不同行(列)移动,做差

本文介绍了如何在pandas中利用shift和diff函数处理时间序列数据,特别是针对不同用户行为时间差的计算。通过shift将行为记录移动到同一行后,使用diff进行时间差的计算。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在做一个比赛,有一张表格记录的是每个用户不同时间的行为,每一次行为有一行记录。现想要求不同用户每次行为的时间差,下面为大家介绍如何实现这一需求。具体如下图所示:

⑴ 先移动到同一行,在做差

pandas中shift()函数的功能是按设置的间隔,将所有列(行)移动整体向上(向下)平移,这样我们就将相近的两次行为的时间移动到了同一行,直接做差就可以得到两次行为的时间差具体如下:

 

action['shift(1)'] = action.groupby('userid')['actionTime'].apply(lambda i:i.shift(1))
action['diff_1'] = action['actionTime'] - action['shift(1)'] 

 

⑵直接做差

pandas中的diff()可以的功能是按设置的间隔,将当前列(行)与指定间隔行(列)做差,具体如下:

 

action['diff_2'] = action.groupby('userid')['actionTime'].apply(lambda i:i.diff(1))

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值