我正在尝试找出每个唯一machine_id
的每笔交易之间的时差,但是很难分别计算每个组的时差。 event_date
具有整数类型,而event_time
具有对象类型
答案 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:您可以执行以下操作。还没有测试它可能有错误。