我目前正在编写用于分析应用使用情况统计数据的代码。数据集如下所示。
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
对象使用加法和减法,如下所示 here和 here 。
对于每日评估,您可能必须首先按日期拆分列表,然后计算所有单个事件的总和,每个事件都由结束时间和开始时间的差值给出。
This discussion和 this discussion也可能对你有帮助。
关于python - 计算不同日期之间的时间差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58427361/