Python: Рассчитать разницу во времени в соответствии с условиями - PullRequest
0 голосов
/ 16 января 2019

У меня есть такой набор данных:

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

Каждый зарегистрированный запрос «выполнить» является результатом некоторых нажатий мыши на интерфейсе - и меня интересует, сколько времени понадобилось, чтобы добраться доrequest.

Я смотрю на любое действие в целом, которое появляется в столбце "action" и имеет "count"> 0. Число, указанное в таблице, является просто количеством действий "нажатой мышью"до того, как данное действие было выполнено.Поэтому мне нужно взять число «count» и в прошлом искать количество «нажатых мышью» действий, указанных в «count».Затем возьмите «нажатую мышь» на расстоянии «отсчета» в прошлом и рассчитайте разницу во временных отметках.После этого добавьте его в строку исходного действия.

Итак, для приведенного выше примера я хочу получить:

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

Спасибо вам

С уважением,

ДКК

Ответы [ 2 ]

0 голосов
/ 17 января 2019

После исследований я построил этот скрипт (я предполагаю, что в записи у меня есть набор данных с именем «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
0 голосов
/ 16 января 2019

что если при нажатии мыши вы сравниваете временную метку для этой нажатой мыши с предыдущей зарегистрированной временной меткой?

как объявить переменную с именем last_timestamp, а затем в новом действии создать новое, сравнить, записать разницу, а затем изменить значение last_timestamp на самое новое

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...