A simple and efficient tool for process mining.
Project description
⛏pyromorphite💎
Process mining in python.
Get the Source Code
Pyromorphite is actively developed on GitHub, where the code is always available.
You can clone the public repository:
$ git clone git://github.com/xcavation/pyromorphite.git
Once you have a copy of the source, you can embed it in your own Python package, or install it into your site-packages easily:
$ cd requests
$ pip install .
Quickstart
This is a quick introduction to Pyromorphite. Before proceeding, make sure that Pyromorphite is installed.
Import a Log 📜
Reading in event log files in Pyromorphite is super easy. It supports XES, CSV, and Excel files.
XES Files
Begin by importing the Pyromorphite module:
>>> import pyromorphite as pm
We'll try now to get an xes file from a web repository. For this dataset:
>>> log = pm.read_xes("https://data.4tu.nl/repository/uuid:c1e9137e-2877-410d-a76a-21ce7f97a239/DATA1")
Similarly we would do if we would like to read a local file. Let's assume that under /path/to/file.xes
lies our file. We can then do:
>>> log = pm.read_xes("/path/to/file.xes")
CSV Files
Although not part of Pyromorphite, reading a csv file can be done with the pandas library.
Begin by import the pandas module:
>>> import pandas as pd
We'll try now to get an xes file from a web repository. For this dataset:
>>> log = pd.read_csv("https://data.4tu.nl/repository/uuid:d5ccb355-ca67-480f-8739-289b9b593aaf/DATA")
Construct a Bag 🎒
Having parsed a log into a pandas DataFrame
we can simply extract the traces of events, with
togehter with their frequency in the log.
>>> bag = pm.as_bag(log)
If we consider that everybody might use different column names, we can specify the case, timestamp and activity columns when creating the bag in the following way:
>>> bag = pm.as_bag(log, case='CI Name (aff)', time='Actual Start', activity='Change Type')
Does this Trace Conform to the Event Log?
For this task we are going to use a model called Log Skeleton.
>>> bag = pm.as_bag(pm.read_xes(os.path.join("B1.xes")))
>>> traces = [("a1", "a4", "a5", "a7")]
>>> pred = pm.skeleton.classify(bag, traces)
>>> [False]
NOTE: Log B1.xes
is equal to the multiset that can be found here.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for pyromorphite-0.0.3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | aa67195f9fc64789aac16d70d11789b9275a4de27d86d66b5dd8000d29afd6e1 |
|
MD5 | 35d1814120b91408373b8bc91de383a5 |
|
BLAKE2b-256 | f612704e2ad09565a34b651d9ce5b74668953d2a566cb6ba2e7cbbdff0f5a065 |