首页 > 解决方案 > PM4Py - 基于开始活动获取跟踪子集

问题描述

考虑这个事件跟踪 - a -> b -> c -> d -> e。我想在给定起始节点的情况下获取事件跟踪的子集。

因此,如果起始节点是b,我希望代码返回b -> c -> d -> e。但这不是该pm4py.filter_start_activities功能的工作方式。如果跟踪从给定的起始节点开始,这只会返回跟踪。它不返回子集。

有什么解决方案吗?

标签: python

解决方案


如果您只想保留以某个活动开头的事件日志中的跟踪,您可以使用以下代码:

from pm4py.algo.filtering.log.start_activities import start_activities_filter
log_start = start_activities_filter.get_start_activities(log)
filtered_log = start_activities_filter.apply(log, ["S1"])

如果要删除所有现有跟踪的前缀(“开始活动”之前的前缀),则必须编写自定义函数。如果不使用 EventLog 对象更容易,您总是可以转换为 pandas 数据框并返回。


推荐阅读