【发布时间】:2020-02-14 01:32:29
【问题描述】:
我目前正在编写用于分析应用使用统计数据的代码。数据集如下所示。
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
【问题讨论】:
-
你能分享一下你需要的输出吗?
-
目前我的输出给出了例如 Instagram:204.0(秒),这是两天所用时间的总和。我想单独看看它,例如,像这样的东西。 10-01 Instagram:xx(秒),10-02 Instagram:xx(秒)
-
要做到这一点,我想我应该对 datetime 库做点什么,但这似乎很复杂。
标签: python python-3.x pandas dataframe datetime