python - 计算不同日期之间的时间差

标签 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

最佳答案

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

对于每日评估,您可能必须首先按日期拆分列表,然后计算所有单个事件的总和,每个事件都由结束时间和开始时间的差值给出。

This discussionthis discussion也可能对你有帮助。

关于python - 计算不同日期之间的时间差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58427361/

相关文章:

python - 获取 Gevent 中运行的 greenlets 总数?

python - 是否有使用 intel svml(短向量数学库)编译的 anaconda 版本?

python - 在树莓派 3 上运行 librosa 和 numba

python - 将 GPT3 与 RASA 相结合

python - 将列名从 int 转换为 pandas 中的字符串

python - 使用 pandas 导出更新数据时遇到问题

python - 如何使Kivy ActionBar Button在单击时执行某些操作?

python - Numpy argsort 不稳定性

python - 嵌套词典未按要求更新

python pandas 两个数据帧的复杂合并