我现在正在做一个分析应用程序使用情况的代码统计数据数据集如下所示。你知道吗
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也可以帮助你。你知道吗
相关问题 更多 >
编程相关推荐