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.2.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.2-py3-none-any.whl (2.9 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for groupbyscore-0.0.2.tar.gz
Algorithm Hash digest
SHA256 6a1022f2f02f2b1f5c4572b5167fa75ec20a75cbc78ff6a49d86b7c261e2307e
MD5 a7ea0ac404003cb7a9314cd010b8129b
BLAKE2b-256 8c79c749d4fc886fe7caed5040a21e4394a8bab0f77f97f209ab9195c2a8fdd6

See more details on using hashes here.

File details

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

File metadata

  • Download URL: groupbyscore-0.0.2-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.11.0

File hashes

Hashes for groupbyscore-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 31e3e438b6164bc92f6ee0aa0bae45b9942fcf59c370b4f9a6dd8cddf040b0b1
MD5 738cb0d1a55b6aeabb57642991e48815
BLAKE2b-256 cdc6f5cd1433399f0da8d267c9b06a44047527fe5f3aee60e4bd821fa7f02602

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