Skip to main content

You can group similar items (e.g., strings or dict fields) using the fuzzywuzzy package by comparing their similarity scores.

Project description

🔍 groupbyScore – Group Similar Items Using Fuzzy Matching in Python

GitHub

Overview

groupbyScore is a Python function that groups similar records from a list of dictionaries using fuzzy matching. It utilizes the rapidfuzz package for high-performance string similarity scoring.


📦 Dependencies

Install with:

pip install rapidfuzz

🚀 Function Signature

groupbyScore(all_data, key)

Parameters

  • all_data (List[dict]): A list of dictionaries to be grouped.
  • key (Callable): A function returning a tuple of values (e.g., lambda x: (x["Notes"], x["page_num"])) used to compare and group.

⚙️ How It Works

  1. Iterates over all item pairs in the dataset.

  2. Compares each field in the key(...) tuple:

    • Strings: fuzz.partial_ratio > 80
    • Integers: must match exactly
  3. Groups items where all key fields match.

  4. Yields:

    • the group key
    • the list of matching items

✅ Example Usage

from rapidfuzz import fuzz

data = [
    {"Notes": "Chest Pain", "page_num": 1},
    {"Notes": "chest pain", "page_num": 1},
    {"Notes": "Fever", "page_num": 2},
    {"Notes": "feverish", "page_num": 2}
]

for key, group in groupbyScore(data, key=lambda x: (x["Notes"], x["page_num"])):
    print("Group Key:", key)
    print("Group Items:", group)

📤 Example Output

Group Key: ('Chest Pain', 1)
Group Items: [{'Notes': 'Chest Pain', 'page_num': 1}, {'Notes': 'chest pain', 'page_num': 1}]

Group Key: ('Fever', 2)
Group Items: [{'Notes': 'Fever', 'page_num': 2}, {'Notes': 'feverish', 'page_num': 2}]

📎 GitHub

🔗 https://github.com/postboxat18/groupbyScore.git

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

groupbyscore-0.0.3.tar.gz (2.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

groupbyscore-0.0.3-py3-none-any.whl (2.9 kB view details)

Uploaded Python 3

File details

Details for the file groupbyscore-0.0.3.tar.gz.

File metadata

  • Download URL: groupbyscore-0.0.3.tar.gz
  • Upload date:
  • Size: 2.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.1

File hashes

Hashes for groupbyscore-0.0.3.tar.gz
Algorithm Hash digest
SHA256 91c295c0fbc57dd05264b94a821d1a445508d629a25822015b6e6de858c1bf35
MD5 d7e275b6b16fb878e36fd38267fed105
BLAKE2b-256 02246a2fca16a40c60b45004c1a2c002ff0b75f84dde00807ac06494918c61c4

See more details on using hashes here.

File details

Details for the file groupbyscore-0.0.3-py3-none-any.whl.

File metadata

  • Download URL: groupbyscore-0.0.3-py3-none-any.whl
  • Upload date:
  • Size: 2.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.1

File hashes

Hashes for groupbyscore-0.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 50e0f8b68946b0245b67f8413f4b45bf8786ff9b12324273a76bbd0eb172608d
MD5 f11eb032167f69a54aa05983eb5b2735
BLAKE2b-256 e1b7530c3f12755b4817c591648b83fefd90ea3f66afb49dc96625e0e4bd1fe8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page