{"id":28976924,"url":"https://github.com/synthesized-io/insight","last_synced_at":"2025-06-24T14:11:04.666Z","repository":{"id":37939117,"uuid":"382033986","full_name":"synthesized-io/insight","owner":"synthesized-io","description":"🧿 Metrics \u0026 Monitoring of Datasets","archived":false,"fork":false,"pushed_at":"2025-06-02T16:28:07.000Z","size":314146,"stargazers_count":11,"open_issues_count":21,"forks_count":0,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-06-22T21:42:09.656Z","etag":null,"topics":["data","data-analysis","data-science","framework","insights","metrics","monitoring","python"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/synthesized-io.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-07-01T12:58:59.000Z","updated_at":"2025-02-02T18:32:59.000Z","dependencies_parsed_at":"2023-12-25T17:45:44.735Z","dependency_job_id":"43edc7db-52c3-476c-8e6e-b5e008076b5a","html_url":"https://github.com/synthesized-io/insight","commit_stats":null,"previous_names":["synthesized-io/synthesized-insight"],"tags_count":29,"template":false,"template_full_name":null,"purl":"pkg:github/synthesized-io/insight","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/synthesized-io%2Finsight","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/synthesized-io%2Finsight/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/synthesized-io%2Finsight/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/synthesized-io%2Finsight/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/synthesized-io","download_url":"https://codeload.github.com/synthesized-io/insight/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/synthesized-io%2Finsight/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261691328,"owners_count":23195051,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["data","data-analysis","data-science","framework","insights","metrics","monitoring","python"],"created_at":"2025-06-24T14:11:03.576Z","updated_at":"2025-06-24T14:11:04.657Z","avatar_url":"https://github.com/synthesized-io.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🧿 insight\n\n![GitHub top language](https://img.shields.io/github/languages/top/synthesized-io/insight?color=%2387B\u0026logo=python\u0026logoColor=cfa5ea)\n![GitHub](https://img.shields.io/github/license/synthesized-io/insight?color=75b1a4\u0026label=license\u0026logo=Open%20Source%20Initiative\u0026logoColor=%233DD639)\n![PyPI - Downloads](https://img.shields.io/pypi/dm/insight?color=%23A25\u0026logo=data:image/png;base64,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)\n![GitHub Repo stars](https://img.shields.io/github/stars/synthesized-io/insight?logo=github\u0026logoColor=%23333\u0026style=social)\n\nA python package to quickly **understand**, **assess**, and **compare** pandas `Series`/`DataFrames`.\n\nThe predominant functions in the package focus on easy-to-use **metrics** and intelligent **plotting functions**. The metrics can also be configured from YAML to allow for simple to configure benchmarking and assessment scripts.\n\n\n## [![PyPI](https://img.shields.io/pypi/v/insight?color=%23DA5\u0026label=latest\u0026logo=semver)](https://pypi.org/project/insight/) [![CodeQL Status](https://img.shields.io/github/workflow/status/synthesized-io/insight/CodeQL?color=%236ac\u0026label=CodeQL\u0026logo=GitHub%20Actions\u0026logoColor=%236ac)](https://github.com/synthesized-io/insight/actions/workflows/code-ql.yml) [![CI Status](https://img.shields.io/github/workflow/status/synthesized-io/insight/CI?label=CI\u0026logo=GitHub%20Actions\u0026logoColor=%23afb)](https://github.com/synthesized-io/insight/actions/workflows/CI.yaml) [![Coverage](https://sonarcloud.io/api/project_badges/measure?project=synthesized-io_synthesized-insight\u0026metric=coverage)](https://sonarcloud.io/summary/new_code?id=synthesized-io_synthesized-insight) [![Code Smells](https://sonarcloud.io/api/project_badges/measure?project=synthesized-io_synthesized-insight\u0026metric=code_smells)](https://sonarcloud.io/summary/new_code?id=synthesized-io_synthesized-insight) [![pre-commit.ci status](https://results.pre-commit.ci/badge/github/synthesized-io/insight/master.svg)](https://results.pre-commit.ci/latest/github/synthesized-io/insight/master)\n\n\n## Installation\n\n```shell\npip install insight\n```\n\n## Usage\n\n### Metrics\n\nAt the core of insight are the metrics classes which can be evaluated on one series, two series,\none dataframe or two dataframes.\n\n```pycon\n\u003e\u003e\u003e import insight.metrics as m\n\u003e\u003e\u003e metric = m.EarthMoversDistance()\n\u003e\u003e\u003e metric(df['A'], df['B'])\n0.14\n```\n\n### Plotting\n\nThe package provides various plotting functions which allow you to easily explore any series, dataframe\nor multiple dataframes.\n\n```pycon\n\u003e\u003e\u003e import insight.plotting as p\n\u003e\u003e\u003e p.plot_dataset([df1, df2])\n```\n\n### Migrations\n\n`insight` populates the results to the Postgres database configured by environment variables. To run migrations against it, simply:\n\n```bash\ninsight-migrations\n```\n\n\u003cdiv align=\"center\"\u003e\n\u003cimg alt=\"distribution plots\" src=\"https://user-images.githubusercontent.com/13236749/181318624-95ad8702-5113-4a9e-8dd4-32f4a3dc8c9f.png\" width=\"85%\"\u003e\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsynthesized-io%2Finsight","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsynthesized-io%2Finsight","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsynthesized-io%2Finsight/lists"}