为流程挖掘准备一个csv文件

Prepare a csv file for process mining

希望你一切顺利! 我正在学习使用 'PM4PY' 进行流程挖掘的教程,但我在 csv 文件中发现了困难, 在我的 csv 文件中,我有以下列:'id'、'status'、'mailID'、'date'...('status' 与 'activity' 相同包含一些特定的选择)

我的 csv 文件包含大量数据。

要遵循流程挖掘教程,我的专栏中必须有类似 'case:concept:name' 的内容......但我不知道如何制作它

首先你需要使用pandas导入你的csv文件,然后转换成一个事件日志对象,最后你可以在pm4py中使用。

参考: https://pm4py.fit.fraunhofer.de/documentation

在您的案例中,我假设 'id' 与正常流程挖掘术语中的案例 ID 相同。同样,'status' 对应于 Activity ID,'date' 对应于时间戳。

最好的选择是在输入 PM4Py 之前先读入 pandas 数据帧。

要详细了解如何执行此操作,请参阅下面的示例。由于您没有提到 csv 文件中的所有列,让我们假设当前您只有 [ 'id', 'status', 'date' ] 作为您的列列表。以下代码可以适应您拥有的任意数量的列(通过将它们添加到名为 cols 的列表中):

import pandas as pd
from pm4py.objects.conversion.log import converter as log_converter

path = '' # Enter path to the csv file
data = pd.read_csv(path)
cols = ['case:concept:name','concept:name','time:timestamp']
data.columns = cols
data['time:timestamp'] = pd.to_datetime(data['time:timestamp'])
data['concept:name'] = data['concept:name'].astype(str)

log = log_converter.apply(data, variant=log_converter.Variants.TO_EVENT_LOG)

这里我们根据 PM4Py 包的要求更改了列名及其数据类型。使用 log_converter 函数将此数据帧转换为事件日志。现在您可以对该事件日志对象执行常规流程挖掘任务。例如,如果您希望从事件日志中创建一个 Directly-Follows Graph,您可以使用以下代码行:

from pm4py.algo.discovery.dfg import algorithm as dfg_algorithm

dfg = dfg_algorithm.apply(log)