def test_case_statistics(self): from pm4py.statistics.traces.pandas import case_statistics df = self.get_dataframe() case_statistics.get_cases_description(df) case_statistics.get_variants_df(df) case_statistics.get_variant_statistics(df) #case_statistics.get_variant_statistics_with_case_duration(df) case_statistics.get_events(df, "N77802") case_statistics.get_variants_df_with_case_duration(df) case_statistics.get_variants_df_and_list(df) case_statistics.get_kde_caseduration(df)
def get_events(self, caseid, parameters=None): """ Gets the events of a case Parameters ------------- caseid Case ID parameters Parameters of the algorithm Returns ------------ list_events Events belonging to the case """ if parameters is None: parameters = {} parameters[ constants.PARAMETER_CONSTANT_ACTIVITY_KEY] = self.activity_key parameters[ constants.PARAMETER_CONSTANT_ATTRIBUTE_KEY] = self.activity_key if not self.grouped_dataframe is None: parameters[constants.GROUPED_DATAFRAME] = self.grouped_dataframe return case_statistics.get_events(self.dataframe, caseid, parameters=parameters)
def get_events(path, log_name, managed_logs, parameters=None): if parameters is None: parameters = {} no_samples = parameters[ PARAMETER_NO_SAMPLES] if PARAMETER_NO_SAMPLES in parameters else DEFAULT_MAX_NO_SAMPLES use_transition = parameters[ PARAMETER_USE_TRANSITION] if PARAMETER_USE_TRANSITION in parameters else DEFAULT_USE_TRANSITION activity_key = DEFAULT_NAME_KEY if not use_transition else "@@classifier" filters = parameters[FILTERS] if FILTERS in parameters else [] parameters[pm4py_constants.PARAMETER_CONSTANT_ACTIVITY_KEY] = activity_key parameters[pm4py_constants.PARAMETER_CONSTANT_ATTRIBUTE_KEY] = activity_key case_id = parameters["case_id"] folder = os.path.join(path, log_name) parquet_list = parquet_importer.get_list_parquet(folder) ret = [] count = 0 for index, pq in enumerate(parquet_list): pq_basename = Path(pq).name if pq_basename in managed_logs: count = count + 1 df = get_filtered_parquet(pq, None, filters, use_transition=use_transition, parameters=parameters) try: events = case_statistics.get_events(df, case_id) if len(events) > 0: df = parquet_importer.apply(pq) ret = case_statistics.get_events(df, case_id) break except: pass if count >= no_samples: break return ret