pm4py.algo.filtering.pandas.activity_split package#

PM4Py – A Process Mining Library for Python

Copyright (C) 2024 Process Intelligence Solutions UG (haftungsbeschränkt)

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License along with this program. If not, see this software project’s root or visit <https://www.gnu.org/licenses/>.

Website: https://processintelligence.solutions Contact: info@processintelligence.solutions

Submodules#

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

PM4Py – A Process Mining Library for Python

Copyright (C) 2024 Process Intelligence Solutions UG (haftungsbeschränkt)

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License along with this program. If not, see this software project’s root or visit <https://www.gnu.org/licenses/>.

Website: https://processintelligence.solutions Contact: info@processintelligence.solutions

class pm4py.algo.filtering.pandas.activity_split.activity_split_filter.Parameters(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)[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#

filtered_df

Dataframe in which the cases are split into subcases