使用python计算每个事务之间的时间差

时间:2019-12-09 06:07:39

标签: python python-3.x dataframe

我正在尝试找出每个唯一machine_id的每笔交易之间的时差,但是很难分别计算每个组的时差。 event_date具有整数类型,而event_time具有对象类型

3 个答案:

答案 0 :(得分:1)

日期时间列设为-

event_date 转换为日期时间格式

df['event_date'] = pd.to_datetime(df['event_date'], 
                                  format='%Y%m%d',
                                  errors='ignore')\
                                  .astype(str)

合并日期和时间列

df['event_datetime'] = pd.to_datetime(\
        df['event_date'] + ' '+ df['event_time'])

然后通过分组matching_id

在此列上查找差异
df.groupby('matching_id')['event_datetime']\
       .apply(lambda x: x.max() - x.min())

答案 1 :(得分:0)

也许可以帮助您:

In [1]: time.time()
Out[1]: 1347517739.44904

In [2]: time.strftime("%Y-%m-%d %H:%M:%S", time.gmtime(time.time()))
Out[2]: '2012-09-13 06:31:43'

用日期替换“%Y-%m-%d”,用时间替换“%H:%M:%S” 然后,您可以对下一个事务执行相同的操作,然后尝试减去它们。

答案 2 :(得分:0)

diff_ser = pd.to_datetime(df['event_date'].astype(str) + ' ' + df['event_time'],\
                          format= '%Y-%m-%d %H:%M:%S').diff()

PS:您可以执行以下操作。还没有测试它可能有错误。