提问人:emudria 提问时间:10/16/2023 最后编辑:emudria 更新时间:10/16/2023 访问量:43
根据事件活动日志获取事件正在进行的所有日期
get all dates when an event was in progress based upon the event activity log
问:
我得到了一个事件日志数据 - 带有事件状态时间戳。可用的日期仅在实际事件发生时提供。 我想要一个输出,我可以知道每天有多少个事件正在进行中。 也就是说,如果活动从 1 月 1 日开始,到 1 月 10 日结束,则该活动从 1 月 1 日到 10 日进行。
示例数据快照
需要的输出快照。
数据:
df = pd.DataFrame([
['1/01/2023','Event_a','started'],
['5/01/2023','Event_b','started'],
['8/01/2023','Event_b','paused'],
['10/01/2023','Event_a','Ended'],
['11/01/2023','Event_b','started'],
['12/01/2023','Event_b','Ended']],
columns = ['date', 'EventID', 'Event_status'])
df['date'] = pd.to_datetime(df['date'])
我已经能够在“日期”和“event_id”组级别填写缺失的日期,并计算事件,但坚持任何进一步的进展。
df_2 = df.groupby(['date','issue_id'])[['issue_id']].count()
df_3 = df_2.unstack(['issue_id']).fillna(0).stack(['issue_id'])
答:
1赞
Panda Kim
10/16/2023
#1
例
post 中的示例无法将 datetime 转换为所需日期。因此,应使用以下示例。
import pandas as pd
df = pd.DataFrame([
['1/01/2023','Event_a','started'],
['5/01/2023','Event_b','started'],
['8/01/2023','Event_b','paused'],
['10/01/2023','Event_a','Ended'],
['11/01/2023','Event_b','started'],
['12/01/2023','Event_b','Ended']],
columns = ['date', 'EventID', 'Event_status'])
法典
第1步。将 datetime 转换为所需日期,并将表整形为 。df1
df['date'] = pd.to_datetime(df['date'], format='%d/%m/%Y')
df1 = df.set_index(['date', 'EventID'])['Event_status'].unstack().asfreq('D')
DF1:
EventID Event_a Event_b
date
2023-01-01 started NaN
2023-01-02 NaN NaN
2023-01-03 NaN NaN
2023-01-04 NaN NaN
2023-01-05 NaN started
2023-01-06 NaN NaN
2023-01-07 NaN NaN
2023-01-08 NaN paused
2023-01-09 NaN NaN
2023-01-10 Ended NaN
2023-01-11 NaN started
2023-01-12 NaN Ended
第2步。在 ffilling 之后,地点和地点是事件发生的地方。df1
Started
df1
paused
Ended
df1.ffill().eq('started')\
.add(df1.isin(['paused', 'Ended']))\
.sum(axis=1)\
.reset_index()\
.set_axis(['Date', 'In_progress_Events'], axis=1)
输出:
Date In_progress_Events
0 2023-01-01 1
1 2023-01-02 1
2 2023-01-03 1
3 2023-01-04 1
4 2023-01-05 2
5 2023-01-06 2
6 2023-01-07 2
7 2023-01-08 2
8 2023-01-09 1
9 2023-01-10 1
10 2023-01-11 1
11 2023-01-12 1
评论
0赞
emudria
10/18/2023
如何更改此代码以获得相同的数字,但在月度或季度级别进行聚合?
1赞
Panda Kim
10/18/2023
@emudria我需要新的问题和新的所需输出
上一个:绘制列中唯一值的时间序列折线图
评论