计算不同天之间的时差

时间:2019-10-17 07:40:05

标签: python python-3.x pandas dataframe datetime

我目前正在编写用于分析应用使用情况统计信息的代码。数据集如下所示。

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 :(得分:0)

您可以对datetime对象使用加减法,如图herehere所示。

对于日常评估,您可能必须先按日期划分列表,然后计算所有单个活动的总和,每个活动由结束时间和开始时间之差给出。

This discussionthis discussion也可能对您有所帮助。