Skip to main content

IDMD - Interactive Data Manipulator and Descriptor

Project description

Interactive Data Manipulator and Descriptor (IDMD)

Overview

The Interactive Data Manipulator and Descriptor (IDMD) is a Python package designed for interactive data exploration, manipulation, visualization, and reporting. It provides a modular structure for handling datasets, making it easy to extend and maintain. (Scientific Python course at PPCU - project work)

idmd chart

Dependencies

The IDMD package requires the following main dependencies:

  • matplotlib
  • streamlit
  • pandas

For specific version requirements, refer to the requirements.txt file. If you are developing or contributing to the project, additional tools for code quality, formatting, linting, and testing are listed in requirements-dev.txt.


Package Structure

data Module

Handles all data-related operations, such as file uploading, dataset generation, and exporting.

  • Submodules:
    • export.py: Handles exporting datasets to CSV or other formats.
    • generator.py: Generates sample datasets with different distributions.
    • uploader.py: Handles file uploads and loading datasets.

manipulation Module

Provides functionality for manipulating datasets.

  • Submodules:
    • columns.py: Handles column-specific operations like swapping, dropping, and selecting columns.
    • replace.py: Handles value-specific operations like replacing values with mean, median, or other methods.

ui Module

Contains components for rendering the Streamlit interface.

  • Submodules:
    • base.py: Defines the abstract Component class for all UI components.
    • columns_ui.py: Provides UI for column manipulation.
    • data_preview.py: Displays a preview of the dataset.
    • data_stats.py: Displays dataset statistics and metadata.
    • exporter_ui.py: Provides UI for exporting data.
    • generator_ui.py: Provides UI for generating data.
    • replace_ui.py: Provides UI for replacing operations.
    • uploader_ui.py: Provides UI for file uploading.
    • visualizer_ui.py: Provides UI for visualizing data, including default and custom plots.

visualization Module

Handles data visualization.

  • Submodules:
    • plots.py: Generates various types of plots (e.g., line plots, bar plots).
    • heatmaps.py: Generates correlation heatmaps.
    • histograms.py: Generates histograms.
    • visualizer.py: Utility class for generating visualizations, including line plots, histograms, and heatmaps.

report Module

Handles report generation.

  • Submodules:
    • report.py: Generates PDF reports with data and visualizations.

app.py

Orchestrates the integration of all components and runs the Streamlit application.


Features

  1. Sample Dataset Generation:

    • Generate datasets with different distributions (e.g., normal, uniform).
    • Easily create synthetic data for testing and exploration.
  2. Data Manipulation:

    • Swap, drop, and select columns.
    • Replace missing values with mean, median, or other methods.
    • Normalize or remove outliers.
  3. Data Visualization:

    • Generate interactive plots, histograms, and heatmaps.
    • Explore data visually with Streamlit's interactivity.
  4. Data Export:

    • Export processed datasets to CSV format.
  5. Report Generation:

    • Generate PDF reports with data summaries and visualizations.

Example Usage

Run the example application using:

streamlit run example_app.py

You can also explore the interactive example notebook example_app.ipynb that demonstrates:

  • Package installation
  • Creating a complete dashboard application
  • Running the app locally or on Google Colab
  • Using all major components of the package

Opening the resulting website, should show a dashboard like this: Dashboard example without data

Loading or generating data should show a similar result: Dashboard example with data 1 Dashboard example with data 2


Links

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

idmd-0.0.2.tar.gz (28.5 kB view details)

Uploaded Source

Built Distribution

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

idmd-0.0.2-py3-none-any.whl (34.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: idmd-0.0.2.tar.gz
  • Upload date:
  • Size: 28.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for idmd-0.0.2.tar.gz
Algorithm Hash digest
SHA256 ce0993784d93f41752c1a512241ee0831286c5195ae9e2c56c8fc06f77528595
MD5 fcb99b3918b23257ebd3059502c53127
BLAKE2b-256 2a6212ee6bae3af04b1fdfbb63042340254fdaffebc871cc6a0b247e98e1c664

See more details on using hashes here.

Provenance

The following attestation bundles were made for idmd-0.0.2.tar.gz:

Publisher: publish-to-testpypi.yml on CsongorLaczko/idmd

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

  • Download URL: idmd-0.0.2-py3-none-any.whl
  • Upload date:
  • Size: 34.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for idmd-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 db0a46387e9bf7d49ce74350abcbb76671d6b62f375d173e4f0ec1f3ca6b4354
MD5 4c91fa694485b3abbf4a6c455f337448
BLAKE2b-256 599dbae283e39257697310dc65e27e237d68f8066c7c7afe9f4411ecdaf8b173

See more details on using hashes here.

Provenance

The following attestation bundles were made for idmd-0.0.2-py3-none-any.whl:

Publisher: publish-to-testpypi.yml on CsongorLaczko/idmd

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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