рассчитать разницу во времени между разными днями - PullRequest
1 голос
/ 17 октября 2019

В настоящее время я делаю код для анализа статистики использования приложений. Набор данных выглядит следующим образом.

date         idx   AppName    EventType         EventTime 
2019-10-01  15835  clock    ACTIVITIY_RESUMED   15:30:02
2019-10-01  15836  clock    ACTIVITIY_PAUSED    15:30:15
2019-10-01  15837  gallery  ACTIVITY_RESUMED    15:31:42
.
. 

2019-10-02  16133  clock    ACTIVITY_RESUMED    16:40:30    

Для каждого использования приложения я кодировал, как показано ниже, и это хорошо работает. Тем не менее, это дает общее время использования, которое охватывает несколько дней. Я хотел бы посчитать использованное время каждый день. Заранее спасибо!

    app_names = df.AppName.unique()
    app_names = df.AppName.value_counts()
    app_usage_time = {}

for app in app_names: #
    app_resumed = False
    app_period = 0
    app_tmp_start = None
    for i, (index, data) in enumerate(df.iterrows()):
        if data.AppName == app: 
            if data.EventType == 'ACTIVITIY_RESUMED': 
                app_resumed = True
                app_tmp_start = data.datetime.timestamp()
            if (data.EventType == 'ACTIVITIY_PAUSED') and (app_tmp_start is not None):
                app_resumed = False
                app_period += data.datetime.timestamp() - app_tmp_start
                app_tmp_start = None

    app_usage_time[app] = app_period

1 Ответ

0 голосов
/ 17 октября 2019

Вы можете использовать как сложение, так и вычитание для datetime объектов, как показано здесь и здесь .

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

Это обсуждение и это обсуждение также может помочь вам.

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