希望你一切都好! 我正在遵循使用“PM4PY”进行流程挖掘的教程,但我发现 csv 文件存在困难, 在我的 csv 文件中,我有以下几列:'id'、'status'、'mailID'、'date'...('status' 与包含一些特定选择的 'activity' 相同)
我的 csv 文件包含大量数据。
为了遵循流程挖掘教程,我的专栏中必须有类似“case:concept:name”的内容...但我不知道如何实现
最佳答案
在您的情况下,我假设“id”与正常流程挖掘术语中的案例 ID 相同。同样,“状态”对应于事件 ID,“日期”对应于时间戳。
最好的选择是先读入 pandas 数据帧,然后再输入 PM4Py。
要详细了解如何执行此操作,请参阅下面的示例。由于您没有提及 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)
关于process - 准备用于流程挖掘的 csv 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62732716/