我目前正在编写用于分析应用使用情况统计信息的代码。数据集如下所示。
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
答案 0 :(得分:0)
您可以对datetime
对象使用加减法,如图here和here所示。
对于日常评估,您可能必须先按日期划分列表,然后计算所有单个活动的总和,每个活动由结束时间和开始时间之差给出。
This discussion和this discussion也可能对您有所帮助。