对时差求和并将其调整-Pandas DataFrame

时间:2018-11-02 23:02:19

标签: python pandas datetime dataframe

我有一个数据框有两列:unix_time和user。它有数千行,这是其中的一部分:

unix_time       user
2000000000000   A
2000000000001   A
2000000000002   B
2000000000003   B
2000000000004   B

我想计算出每个用户总共花费了unix_time的时间:
1.计算行之间的时间差。例如:unix_time column (row2 - row1)
2.如果时间差来自同一用户,则求和。例如:sum(row2 - row1) and (row3 - row2)

输出将为

time_difference_sum  user
1                    A
2                    B

我阅读了these two之类的几篇文章,但由于受到更多的限制,因此仍然很难找到解决方案。关于如何执行此操作的任何建议?谢谢你!

1 个答案:

答案 0 :(得分:1)

您可以先使用groupby()diff(),然后再使用agg()您的结果:

df['time_difference_sum'] = df.sort_values(['user','unix_time']).groupby('user')['unix_time'].diff()

df.groupby('user').agg({'time_difference_sum': 'sum'})

收益:

      time_difference_sum
user                     
A                     1.0
B                     2.0