pm4py.algo.filtering.pandas.activity_split.activity_split_filter module#

class pm4py.algo.filtering.pandas.activity_split.activity_split_filter.Parameters(*values)[source]#

Bases: Enum

ACTIVITY_KEY = 'pm4py:param:activity_key'#
CASE_ID_KEY = 'pm4py:param:case_id_key'#
SUBCASE_CONCAT_STR = 'subcase_concat_str'#
CUT_MODE = 'cut_mode'#
pm4py.algo.filtering.pandas.activity_split.activity_split_filter.apply(df: DataFrame, activity: str | List[str], parameters: Dict[str | Parameters, Any] | None = None) DataFrame[source]#

Splits the cases of a log (Pandas dataframe) into subcases based on the provision of an activity. There are as many subcases as many occurrences of a given activity occur.

Example: Original log:

[[‘register request’, ‘examine casually’, ‘check ticket’, ‘decide’, ‘reinitiate request’, ‘examine thoroughly’, ‘check ticket’, ‘decide’, ‘pay compensation’], [‘register request’, ‘examine casually’, ‘check ticket’, ‘decide’, ‘reinitiate request’, ‘check ticket’, ‘examine casually’, ‘decide’, ‘reinitiate request’, ‘examine casually’, ‘check ticket’, ‘decide’, ‘reject request’]]

Log filtered using the activity split filter on ‘reinitiate request’ with cut_mode=’this’:

[[‘register request’, ‘examine casually’, ‘check ticket’, ‘decide’], [‘reinitiate request’, ‘examine thoroughly’, ‘check ticket’, ‘decide’, ‘pay compensation’], [‘register request’, ‘examine casually’, ‘check ticket’, ‘decide’], [‘reinitiate request’, ‘check ticket’, ‘examine casually’, ‘decide’], [‘reinitiate request’, ‘examine casually’, ‘check ticket’, ‘decide’, ‘reject request’]]

Log filtered using the activity split filter on ‘reinitiate request’ with cut_mode=’next’:

[[‘register request’, ‘examine casually’, ‘check ticket’, ‘decide’, ‘reinitiate request’], [‘examine thoroughly’, ‘check ticket’, ‘decide’, ‘pay compensation’], [‘register request’, ‘examine casually’, ‘check ticket’, ‘decide’, ‘reinitiate request’], [‘check ticket’, ‘examine casually’, ‘decide’, ‘reinitiate request’], [‘examine casually’, ‘check ticket’, ‘decide’, ‘reject request’]]

Parameters:
  • df – Dataframe

  • activity – Activity (or collection of activities)

  • parameters – Parameters of the algorithm, including: - Parameters.ACTIVITY_KEY => activity key - Parameters.CASE_ID_KEY => case id - Parameters.SUBCASE_CONCAT_STR => concatenator between the case id and the subtrace index in the filtered df - Parameters.CUT_MODE => mode of cut:

    • “this” means that an event with the specified activity goes to the next subcase

    • “next” means that the following event (to the given activity) goes to the next subcase.

Returns:

Dataframe in which the cases are split into subcases

Return type:

filtered_df