glassonion1
anonypy
Python

Anonymization library for python. Protect the privacy of individuals.

Last updated Oct 15, 2025
31
Stars
9
Forks
3
Issues
0
Stars/day
Attention Score
17
Language breakdown
No language data available.
Files click to expand
README

AnonyPy

Anonymization library for python. AnonyPy provides following privacy preserving techniques for the anonymization.
  • K Anonymity
  • L Diversity
  • T Closeness

The Anonymization method

  • Anonymization method aims at making the individual record be indistinguishable among a group record by using techniques of generalization and suppression.
  • Turning a dataset into a k-anonymous (and possibly l-diverse or t-close) dataset is a complex problem, and finding the optimal partition into k-anonymous groups is an NP-hard problem.
  • AnonyPy uses "Mondrian" algorithm to partition the original data into smaller and smaller groups
  • The algorithm assumes that we have converted all attributes into numerical or categorical values and that we are able to measure the “span” of a given attribute Xi.

Install

$ pip install anonypy

Usage

import anonypy
import pandas as pd

data = [ [6, "1", "test1", "x", 20], [6, "1", "test1", "x", 30], [8, "2", "test2", "x", 50], [8, "2", "test3", "w", 45], [8, "1", "test2", "y", 35], [4, "2", "test3", "y", 20], [4, "1", "test3", "y", 20], [2, "1", "test3", "z", 22], [2, "2", "test3", "y", 32], ]

columns = ["col1", "col2", "col3", "col4", "col5"] categorical = set(("col2", "col3", "col4"))

df = pd.DataFrame(data=data, columns=columns)

for name in categorical: df[name] = df[name].astype("category")

feature_columns = ["col1", "col2", "col3"] sensitive_column = "col4"

p = anonypy.Preserver(df, featurecolumns, sensitivecolumn) rows = p.anonymizekanonymity(k=2)

dfn = pd.DataFrame(rows) print(dfn)

Original data

col1 col2   col3 col4  col5 0     6    1  test1    x    20 1     6    1  test1    x    30 2     8    2  test2    x    50 3     8    2  test3    w    45 4     8    1  test2    y    35 5     4    2  test3    y    20 6     4    1  test3    y    20 7     2    1  test3    z    22 8     2    2  test3    y    32

The created anonymized data is below(Guarantee 2-anonymity).

col1 col2         col3 col4  count 0  2-4    2        test3    y      2 1  2-4    1        test3    y      1 2  2-4    1        test3    z      1 3  6-8    1  test1,test2    x      2 4  6-8    1  test1,test2    y      1 5    8    2  test3,test2    w      1 6    8    2  test3,test2    x      1

Publish PyPI

$ python -m pip install hatchling wheel twine
$ python -m build --wheel .
$ python -m twine upload dist/*
🔗 More in this category

© 2026 GitRepoTrend · glassonion1/anonypy · Updated daily from GitHub