def test_csv1documentation(self): # to avoid static method warnings in tests, # that by construction of the unittest package have to be expressed in such way self.dummy_variable = "dummy_value" import os from pm4py.objects.log.importer.csv import factory as csv_importer event_log = csv_importer.import_event_stream( os.path.join("input_data", "running-example.csv")) event_log_length = len(event_log) del event_log_length from pm4py.objects.log import transform log = transform.transform_event_stream_to_event_log( event_log, case_glue="case:concept:name") del log from pm4py.objects.log.importer.csv.versions import pandas_df_imp dataframe = pandas_df_imp.import_dataframe_from_path( os.path.join("input_data", "running-example.csv")) event_log = log_conv_fact.apply(dataframe, variant=log_conv_fact.TO_EVENT_STREAM) log = log_conv_fact.apply(event_log) from pm4py.objects.log.exporter.csv import factory as csv_exporter csv_exporter.export(event_log, "outputFile1.csv") os.remove("outputFile1.csv") from pm4py.objects.log.exporter.csv import factory as csv_exporter csv_exporter.export(log, "outputFile2.csv") os.remove("outputFile2.csv")
def test_importExportCSVtoCSV(self): # to avoid static method warnings in tests, # that by construction of the unittest package have to be expressed in such way self.dummy_variable = "dummy_value" event_log = csv_importer.import_event_stream( os.path.join(INPUT_DATA_DIR, "running-example.csv")) event_log = sorting.sort_timestamp(event_log) event_log = sampling.sample(event_log) event_log = index_attribute.insert_event_index_as_event_attribute( event_log) log = log_conv_fact.apply(event_log) log = sorting.sort_timestamp(log) log = sampling.sample(log) log = index_attribute.insert_trace_index_as_event_attribute(log) event_log_transformed = log_conv_fact.apply( log, variant=log_conv_fact.TO_EVENT_STREAM) csv_exporter.export( event_log_transformed, os.path.join(OUTPUT_DATA_DIR, "running-example-exported.csv")) event_log_imported_after_export = csv_importer.import_event_stream( os.path.join(OUTPUT_DATA_DIR, "running-example-exported.csv")) log_imported_after_export = log_conv_fact.apply( event_log_imported_after_export) self.assertEqual(len(log), len(log_imported_after_export)) os.remove(os.path.join(OUTPUT_DATA_DIR, "running-example-exported.csv"))
def xes_to_csv(xes_path, csv_path): """ Imports .xes given the xes_path, and converts and saves it to a .csv file Args: xes_path (str) : path of .xes compliant input event log csv_path (str) : path of .csv output event log """ log = xes_import_factory.apply(xes_path) csv_exporter.export(log, csv_path)
def test_importExportXEStoCSV(self): # to avoid static method warnings in tests, # that by construction of the unittest package have to be expressed in such way self.dummy_variable = "dummy_value" log = xes_importer.import_log(os.path.join(INPUT_DATA_DIR, "running-example.xes")) event_log = log_conv_fact.apply(log, variant=log_conv_fact.TO_EVENT_STREAM) csv_exporter.export(event_log, os.path.join(OUTPUT_DATA_DIR, "running-example-exported.csv")) event_log_newimport = csv_importer.import_event_stream( os.path.join(OUTPUT_DATA_DIR, "running-example-exported.csv")) log_imported_after_export = log_conv_fact.apply(event_log_newimport) self.assertEqual(len(log), len(log_imported_after_export)) os.remove(os.path.join(OUTPUT_DATA_DIR, "running-example-exported.csv"))
def test_pdimp_csvexp(self): log0 = csv_import_adapter.import_dataframe_from_path( os.path.join("input_data", "running-example.csv")) log = log_conv_factory.apply(log0, variant=log_conv_factory.TO_EVENT_LOG) stream = log_conv_factory.apply( log0, variant=log_conv_factory.TO_EVENT_STREAM) df = log_conv_factory.apply(log0, variant=log_conv_factory.TO_DATAFRAME) csv_exporter_factory.export(log, "ru.csv") csv_exporter_factory.export(stream, "ru.csv") csv_exporter_factory.export(df, "ru.csv") os.remove('ru.csv')
#set parameters filePath = sys.argv[1] k = sys.argv[2] t = sys.argv[3] anon = sys.argv[4] dbName = sys.argv[5] secure_token = sys.argv[6] sys.setrecursionlimit(3000) filePath = filePath.replace(" ", "_") if filePath.endswith(".xes"): log = xes_import_factory.apply(filePath) file_path_xes_csv = filePath + ".csv" csv_exporter.export(log, file_path_xes_csv) targetFilePath = file_path_xes_csv.replace(".xes.csv", "_k%s_pretsa.csv" % (k)) #run PRETSA if file_path_xes_csv.endswith(".xes.csv"): xes_csv_file = pd.read_csv(file_path_xes_csv, delimiter=",", skipinitialspace=True, encoding="utf-8-sig", keep_default_na=False, na_values=[ '-1.#IND', '1.#QNAN', '1.#IND', '-1.#QNAN', '#N/A N/A', '#N/A', 'N/A', 'n/a', '', '#NA', 'NULL', 'null', 'NaN', '-NaN', 'nan', '-nan', ''
import pandas as pd import sqlite3 import os import random from pm4py.objects.log.importer.xes import factory as xes_import_factory from pm4py.objects.log.exporter.csv import factory as csv_exporter #set parameters secure_token = sys.argv[1] filePath = filePath.replace(" ", "_") if filePath.endswith(".xes"): log = xes_import_factory.apply(filePath) filePath = filePath + ".csv" csv_exporter.export(log, filePath) targetFilePath = filePath.replace(".csv", "_columns.csv") #run PRETSA if filePath.endswith(".xes.csv"): xes_csv_file = pd.read_csv(filePath, delimiter=",", skipinitialspace=True, encoding="utf-8-sig") xes_csv_file.rename(columns={ 'concept:name': 'Activity', 'case:concept:name': 'Case ID' }, inplace=True) if not 'Duration' in xes_csv_file.columns: xes_csv_file.loc[:, "Duration"] = 0.0 xes_csv_file.to_csv(filePath,
#Topic: #----------------------------- #libraries from pm4py.algo.discovery.alpha import factory as alpha_miner from pm4py.objects.log.importer.xes import factory as importer from pm4py.visualization.petrinet import factory as visualizer from pm4py.objects.log.importer.csv import factory as csv_importer event_stream = csv_importer.import_event_stream( os.path.join("pmdata/", "running-example.csv")) event_stream event_stream_length = len(event_stream) print(event_stream_length) for event in event_stream: print(event) from pm4py.objects.conversion.log import factory as conversion_factory log = conversion_factory.apply(event_stream) from pm4py.objects.log.exporter.csv import factory as csv_exporter csv_exporter.export(event_stream, "data/outputFile1.csv") #log = importer.apply('pmdata/running-example.xes') net, initial_marking, final_marking = alpha_miner.apply(log) gviz = visualizer.apply(net, initial_marking, final_marking) visualizer.view(gviz)
return inductive_evaluation_result number_of_experiment_to_run = 100 results = [] for _ in range(number_of_experiment_to_run): # Generate a random process tree and get traces from the process tree tree = tree_gen_factory.apply() log = semantics.generate_log(tree, no_traces=1000) size_tree, leafs = rec_node([tree], []) leafs = set(leafs).union(set('τ')) tree = { 'tree': str(tree), 'tree_size': size_tree } csv_exporter.export(log, 'temp.csv') original_df = pd.read_csv('temp.csv') os.remove('temp.csv') log_for_eval = copy.deepcopy(log) # Try different level of noise for noise_ratio in np.arange(0, 1.01, 0.05): noise_ratio = round(noise_ratio,2) # Alter the event log df = original_df.copy() df = randomly_remove_log(df, noise_ratio) # The classic approach is simply to apply the inductive miner # on the traces that might contain truncated traces. result = {'type':'classic', 'noise':noise_ratio}
from pm4py.objects.log.importer.xes import factory as xes_import_factory from pm4py.objects.log.exporter.csv import factory as csv_exporter #set parameters filePath = sys.argv[1] dbName = sys.argv[2] secure_token = sys.argv[3] print("Retrieving case and event attribute names") filePath = filePath.replace(" ", "_") log = xes_import_factory.apply(filePath) targetFilePath = filePath.replace(".xes", "_renamed.csv") file_path_buffer = filePath.replace(".xes", "_buffer.csv") csv_exporter.export(log, file_path_buffer) xes_csv_file = pd.read_csv(file_path_buffer, delimiter=",", skipinitialspace=True, encoding="utf-8-sig", keep_default_na=False, na_values=[ '-1.#IND', '1.#QNAN', '1.#IND', '-1.#QNAN', '#N/A N/A', '#N/A', 'N/A', 'n/a', '', '#NA', 'NULL', 'null', 'NaN', '-NaN', 'nan', '-nan', '' ]) ##################################################### if not 'Activity' in xes_csv_file.columns:
from pm4py.objects.log.importer.xes import factory as xes_import_factory path_log = "C:\personal projects\ISMFieldproject\data\Hospital_log.xes" path_billing = "C:\personal projects\ISMFieldproject\data\Hospital Billing - Event Log.xes.gz" path_sepsis = "C:\personal projects\ISMFieldproject\data\Sepsis Cases - Event Log.xes.gz" # %% we read in the event docs from xes hospital_log = xes_import_factory.apply(path_log) hospital_billing = xes_import_factory.apply(path_billing) sepsis_cases = xes_import_factory.apply(path_sepsis) # %% we transform the documents into csv files from pm4py.objects.log.exporter.csv import factory as csv_exporter csv_exporter.export(hospital_log, "hospital_log.csv") csv_exporter.export(hospital_billing, "hospital_billing.csv") csv_exporter.export(sepsis_cases, "sepsis_cases.csv")
#log = xes_import_factory.apply(r"C:\Gamal Elkoumy\PhD\OneDrive - Tartu Ülikool\Secure MPC\Business Process Mining SourceCode\Datasets\BPIC15_1.xes") # #csv_exporter.export(log, r"C:\Gamal Elkoumy\PhD\OneDrive - Tartu Ülikool\Secure MPC\Business Process Mining SourceCode\Datasets\BPIC15_1.csv") # #print("2") #log = xes_import_factory.apply(r"C:\Gamal Elkoumy\PhD\OneDrive - Tartu Ülikool\Secure MPC\Business Process Mining SourceCode\Datasets\BPIC15_2.xes") # #csv_exporter.export(log, r"C:\Gamal Elkoumy\PhD\OneDrive - Tartu Ülikool\Secure MPC\Business Process Mining SourceCode\Datasets\BPIC15_2.csv") # # #print("3") #log = xes_import_factory.apply(r"C:\Gamal Elkoumy\PhD\OneDrive - Tartu Ülikool\Secure MPC\Business Process Mining SourceCode\Datasets\BPIC15_3.xes") # #csv_exporter.export(log, r"C:\Gamal Elkoumy\PhD\OneDrive - Tartu Ülikool\Secure MPC\Business Process Mining SourceCode\Datasets\BPIC15_3.csv") # # #print("4") #log = xes_import_factory.apply(r"C:\Gamal Elkoumy\PhD\OneDrive - Tartu Ülikool\Secure MPC\Business Process Mining SourceCode\Datasets\BPIC15_4.xes") # #csv_exporter.export(log, r"C:\Gamal Elkoumy\PhD\OneDrive - Tartu Ülikool\Secure MPC\Business Process Mining SourceCode\Datasets\BPIC15_4.csv") print("5") log = xes_import_factory.apply( r"C:\Gamal Elkoumy\PhD\OneDrive - Tartu Ülikool\Secure MPC\Business Process Mining SourceCode\Datasets\Sepsis Cases - Event Log (1).xes" ) csv_exporter.export( log, r"C:\Gamal Elkoumy\PhD\OneDrive - Tartu Ülikool\Secure MPC\Business Process Mining SourceCode\Datasets\Sepsis Cases - Event Log.csv" )
case_id, pred, rel_scores = grm_model.predict(trace) if len(rel_scores) > 1: most_relevant = max(rel_scores.items(), key=operator.itemgetter(1))[0] log_trace = attributes_filter.apply_events( log, [case_id], parameters={ attributes_filter.PARAMETER_CONSTANT_ATTRIBUTE_KEY: name_of_case_id, "positive": True }) trace_without_most = attributes_filter.apply_events( log_trace, [most_relevant], parameters={ attributes_filter.PARAMETER_CONSTANT_ATTRIBUTE_KEY: "concept:name", "positive": False }) trace_without_most = trace_without_most[0] filtered_log._list.append(trace_without_most) log = conversion_factory.apply(filtered_log) csv_exporter.export(log, "sp2020_without_most_relevant.csv") run_experiment(log, hyper_params=hyper_params, k=k, ml_flow_run_name_prefix=logfile)
log = conversion_factory.apply(event_stream) from pm4py.algo.discovery.alpha import factory as alpha_miner net, initial_marking, final_marking = alpha_miner.apply(log) from pm4py.objects.log.importer.xes import factory as xes_import_factory xes_path = 'C:/Users/vince_000/Documents/BPI Challenge 2019/INV after GR - with SRM/01_01_01_Service/' xes_file = '01_01_01_Invoice_after_GR_with_SRM_Service.xes' log = xes_import_factory.apply(xes_path + xes_file) log[0] from pm4py.objects.log.exporter.csv import factory as csv_exporter csv_exporter.export(log, "C:/Users/vince_000/Documents/BPI Challenge 2019/test/outputFile1.csv") from pm4py.algo.discovery.alpha import factory as alpha_miner net, initial_marking, final_marking = alpha_miner.apply(log) from pm4py.visualization.petrinet import factory as pn_vis_factory gviz = pn_vis_factory.apply(net, initial_marking, final_marking) pn_vis_factory.view(gviz) log[0]
def load(file_path): csv_path = file_path + ".csv" if not os.path.isfile(csv_path): log = xes_importer.apply(file_path) csv_exporter.export(log, csv_path) return pd.read_csv(csv_path)