我有一个像这样的数据集:
id timestamp action count
1 1262488099.821 mouse pressed ?
2 1262488101.397 mouse pressed ?
3 1262488101.460 perform BLUETOOTH_CONTROL_S4 2
4 1262488112.508 perform BLUETOOTH_SOURCE_S4 2
每个记录的“执行”请求是界面上某些鼠标按下操作的结果-我对到达请求所花的时间很感兴趣。
我正在查看一般的任何操作,该操作出现在“操作”列中且“计数”>0。表中给出的计数只是在给定操作之前“按下鼠标”操作的计数执行。 因此,我基本上需要使用“计数”数字,并查看过去由“计数”指定的“按鼠标”操作的数量。然后将“按下的鼠标”移到过去“计数”的距离处,并计算时间戳的差异。 之后,将其附加到原始操作的行。
因此对于上面的示例,我想获得:
id timestamp action count timestamp diff
1 1262488099.821 mouse pressed ? ?
2 1262488101.397 mouse pressed ? ?
3 1262488101.460 perform BLUETOOTH_CONTROL_S4 2 1.639
4 1262488112.508 perform BLUETOOTH_SOURCE_S4 2 12.687
谢谢
此致
dkk
答案 0 :(得分:0)
如果将鼠标按下的时间戳与您注册的前一个时间戳进行比较,该怎么办?
就像声明一个名为last_timestamp的变量,然后执行一个新动作,创建一个新动作,进行比较,写出差异,然后将last_timestamp值更改为最新的
答案 1 :(得分:0)
经过调查,我构建了此脚本(我想在输入项中有一个名为“ data”的数据集):
import pandas as pd
data_2 = data.sort_values(by='timestamp', ascending=False)
data_2.index = pd.RangeIndex(len(data_2.index))
data_2['timestamp_diff'] = '?'
for i in data_2['action']:
index_i = int(data_2[data_2['action']==i].index[0])
delta = 0
for j in range(index_i,len(data_2['action'])) :
if 'mouse' in data_2['action'][j] and 'pressed' in data_2['action'][j]:
delta+=1
if delta ==data_2['count'][index_i]:
print(data_2['count'][index_i])
data_2['timestamp_diff'][index_i] = round(data_2['timestamp'][index_i] - data_2['timestamp'][j],3)
else :
delta = delta
data = data_2.sort_values(by='timestamp')
data.index = pd.RangeIndex(len(data.index))
data