Python interface to the R package arules
arulespy is a Python package available from PyPI.
Its arules module provides a Python interface to the popular
R package arules for association rule mining built
with rpy2.
The R arules package implements a comprehensive infrastructure for representing, manipulating and analyzing transaction data and patterns using frequent itemsets and association rules. The package also provides a wide range of interest measures and mining algorithms including the code of Christian Borgelt’s popular and efficient C implementations of the association mining algorithms Apriori and Eclat, and optimized C/C++ code for mining and manipulating association rules using sparse matrix representation.
The arulesViz module provides plot() for visualizing association rules using
the R package arulesViz.
arulespy provides Python classes for:
Transactions: transaction data, including conversion from pandas DataFramesRules: association rulesItemsets: itemsetsItemMatrix: sparse representations of sets of items
These classes support len(), integer indexing, negative indexing, integer
sequences, boolean masks, and Python-style slicing.
Python-style snake-case names are available for APIs inherited from R, such as
item_frequency(), item_info(), item_labels(), interest_measure(),
add_quality(), arules_to_py(), discretize_df(), inspect_dt(), and
rule_explorer(). Interactive R HTML widgets can be embedded reliably in
notebooks with html_widget().
The original R-style names remain available for compatibility.
Most arules operations are exposed as methods on these classes, with common R
results converted into pandas, NumPy, or SciPy objects. API documentation is
available through Python's help(). See the
arules reference manual
for details about the underlying R operations.
For low-level access, import R_arules and call translated R function names,
for example R_arules.random_transactions(...). These calls return rpy2
objects. Convert supported R objects into arulespy or standard Python objects
with arules_to_py().
To cite the Python module ‘arulespy’ in publications use:
Michael Hahsler. ARULESPY: Exploring association rules and frequent itemsets in Python. arXiv:2305.15263 [cs.DB], May 2023. DOI: 10.48550/arXiv.2305.15263
Installation
arulespy supports Python 3.11 through 3.14. It uses rpy2 and requires
R 4.5 or later with the R package arules. The R package arulesViz is
optional and is needed only for visualization functions.
Importing arulespy by itself does not initialize R or install R packages.
When arulespy.arules is first imported, a missing arules package is
installed automatically from CRAN. Importing arulespy.arulesViz likewise
installs arulesViz if needed.
Installing R packages from source can take some time. Conda is recommended for
the compatible Python, R, arules, and rpy2 core environment.
Recommended: conda
Using conda (for example,
Miniconda) is
recommended because it installs compatible versions of Python, R, arules,
and rpy2 together. Create and activate a dedicated environment:
conda create --name arulespy -c conda-forge \
python=3.13 r-base r-arules rpy2 pip
conda activate arulespy
Then install arulespy from PyPI:
python -m pip install arulespy
The optional arulesViz package can be installed with:
conda install -c conda-forge \
r-dt r-ggraph r-igraph r-plotly r-visnetwork
Rscript -e 'install.packages("arulesViz", repos="https://cloud.r-project.org")'
Note: arulesViz is installed from CRAN since r-arulesViz is currently not available for this
Python 3.13 Conda environment due to conflicts with the newer R required by current rpy2.
Once it becomes available, then it can be installed with conda.
conda install -c conda-forge r-arulesviz
Using an existing R installation
Make sure that R 4.5 or later is available on PATH, then install the Python
package:
python -m pip install arulespy
The required R packages will be installed automatically when their respective interfaces are imported. To avoid installation during import, preinstall them with R:
Rscript -e 'install.packages(c("arules", "arulesViz"), repos="https://cloud.r-project.org")'
Troubleshooting
If rpy2 cannot find R or its shared library, inspect the configuration with
python -m rpy2.situation. From a Python session or notebook, use:
from rpy2 import situation
for row in situation.iter_info():
print(row)
The output should contain Loading R library from rpy2: OK.
On Linux, if R is on PATH but its shared library cannot be loaded, set the
library path reported by rpy2 before starting Python:
export LD_LIBRARY_PATH="$(python -m rpy2.situation LD_LIBRARY_PATH):${LD_LIBRARY_PATH}"
On Windows, the conda installation above is recommended. For a separate R
installation, make sure R's binary directory is on PATH and, if needed, that
R_HOME points to the R installation directory. Consult the current
rpy2 installation documentation
when diagnosing native installation problems.
Example
import pandas as pd
from arulespy import Transactions, apriori, parameters
# Define transaction data as a pandas DataFrame.
df = pd.DataFrame(
[
[True, True, True],
[True, False, False],
[True, True, True],
[True, False, False],
[True, True, True],
],
columns=list("ABC"),
)
# Convert the DataFrame to transactions.
transactions = Transactions.from_df(df)
# Mine association rules.
rules = apriori(
transactions,
parameter=parameters({"supp": 0.1, "conf": 0.8}),
control=parameters({"verbose": False}),
)
# Display the rules as a pandas DataFrame.
rules.as_df()
| LHS | RHS | support | confidence | coverage | lift | count |
|---|---|---|---|---|---|---|
| {} | {A} | 1.0 | 1.0 | 1.0 | 1.000000 | 5 |
| {B} | {C} | 0.6 | 1.0 | 0.6 | 1.666667 | 3 |
| {C} | {B} | 0.6 | 1.0 | 0.6 | 1.666667 | 3 |
| {B} | {A} | 0.6 | 1.0 | 0.6 | 1.000000 | 3 |
| {C} | {A} | 0.6 | 1.0 | 0.6 | 1.000000 | 3 |
| {B,C} | {A} | 0.6 | 1.0 | 0.6 | 1.000000 | 3 |
| {A,B} | {C} | 0.6 | 1.0 | 0.6 | 1.666667 | 3 |
| {A,C} | {B} | 0.6 | 1.0 | 0.6 | 1.666667 | 3 |
Complete examples:
References
- Michael Hahsler. ARULESPY: Exploring association rules and frequent itemsets in Python. arXiv:2305.15263 [cs.DB], May 2023. DOI: 10.48550/arXiv.2305.15263
- Michael Hahsler, Sudheer Chelluboina, Kurt Hornik, and Christian Buchta. The arules R-package ecosystem: Analyzing interesting patterns from large transaction datasets. Journal of Machine Learning Research, 12:1977-1981, 2011.
- Michael Hahsler, Bettina Grün and Kurt Hornik. arules - A Computational Environment for Mining Association Rules and Frequent Item Sets. Journal of Statistical Software, 14(15), 2005. DOI: 10.18637/jss.v014.i15
- Hahsler, Michael. A Probabilistic Comparison of Commonly Used Interest Measures for Association Rules, 2015, URL: https://mhahsler.github.io/arules/docs/measures.
- Michael Hahsler. An R Companion for Introduction to Data Mining: Chapter 5, 2021, URL: https://mhahsler.github.io/Introduction_to_Data_Mining_R_Examples/book/
Release files for arulespy 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| arulespy-0.2.0.tar.gz | 28.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| arulespy-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 52.8 kB
Release files / arulespy-0.2.0.tar.gz
| Download URL | arulespy-0.2.0.tar.gz |
|---|---|
| Size | 28.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
503c43bff3295130e41b46e55a3bb7883f6e11d1e57126fe4b898190dfc66b13
|
|
BLAKE2b-256 checksum How to use checksums |
8b0ac23dd0ccff353b761e2076c5dc045340d6167d90ee4a78de0cbec66bdef8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 10, 2026.
Transparency logRelease files / arulespy-0.2.0-py3-none-any.whl
| Download URL | arulespy-0.2.0-py3-none-any.whl |
|---|---|
| Size | 24.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
86e34853ee470fba01ca60cdb11a44516e82da1ac1e95aa0a3ea86bf8730ce2d
|
|
BLAKE2b-256 checksum How to use checksums |
bfc12f28523b7d0bffca892673aecb2b0bc2bb8714a535deb3302155648c6bbb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 10, 2026.
Transparency log