YData Profiling

repository·develop·Indexed 12 days ago

https://github.com/data-centric-ai-community/fg-data-profiling

A tool for comprehensive data profiling and analysis that generates profile reports for pandas and PySpark DataFrames (v4.0.0+). It features a ProfileReport constructor for customizing variable settings, schema types, and correlation matrices, as well as a 'minimal' mode for handling large datasets. Users can configure the tool via Python code, YAML files, or environment variables, and can opt-out of telemetry using the YDATA_PROFILING_NO_ANALYTICS variable.

Tokens
30.7K
Snippets
123
Records
160
Agent score
96%

What's inside YData Profiling

  1. Follow the Git branching and naming workflow

    develop

    The project follows a specific Git branching model to facilitate collaboration and automation. GitHub Actions automatically lints code on release branches and builds documentation on pushes to the master branch.

    Branch Naming Conventions:

    • develop: The main development branch.
    • master: The production/master branch.
    • feat/[FEATURE NAME]: Used for new feature development.
    • docs/[branch name]: Used for documentation and examples updates.
  2. Use Data Quality Alerts to identify issues

    develop

    The Alerts section of a report automatically lists potential data quality issues. These alerts can refer to specific columns, inter-column relationships, or the dataset as a whole.

    Note: Alerts are automated suggestions; domain validation is required to determine if an alert represents a genuine data quality issue.

    To configure default values, specific parameters, thresholds, or to disable specific alerts, consult the available settings documentation.

  3. How time-series gap analysis works

    develop
    The tool automatically identifies potential time-series gaps (intervals where observations are missing or incomplete) by performing a time interval analysis. It analyzes the intervals between consecutive data points; gaps are identified when the distribution of these intervals shows significantly larger values, indicating missing entries in the time index or missing values.
  4. Use configuration shorthands to disable report sections

    develop

    Instead of configuring individual settings, you can use configuration shorthands to selectively enable or disable entire sections of the report. Setting these to None disables the corresponding computation or display.

    Available shorthands:

    • samples: Controls whether the dataset preview is shown.
    • correlation: Controls whether correlation computations are executed.
    • missing_diagrams: Controls whether missing value analysis is executed.
    • duplicates: Controls whether duplicate rows are previewed.
    • interactions: Controls whether interactions are computed.
    from data_profiling import ProfileReport
    
    # Disable samples, correlations, missing diagrams and duplicates at once
    r = ProfileReport(
        samples=None,
        correlations=None,
        missing_diagrams=None,
        duplicates=None,
        interactions=None,
    )
  5. Supported data structures in YData Profiling

    develop

    YData Profiling provides insights across several data structures:

    • Tabular data: Provides statistics on data distribution, central tendencies, categorical frequencies, multivariate relations (correlations/interactions), and missing data.
    • Time-series data: Captures trends, seasonality, cyclic patterns, missing data gaps, volatility, periodicity, and anomalies.
    • Text: Provides statistics on word frequency distributions, common phrases, and unique words.
    • Image data: Supported via the profiling engine.
  6. Perform Multivariate Profiling for relationship analysis

    develop

    Multivariate profiling explores relationships between variables through two main lenses:

    • Correlation view: Computes correlation coefficients between pairs of numerical variables to identify linear relationships and potential multicollinearity.
    • Interactions section: Explores potential nonlinear relationships and interactions between variables to identify hidden patterns not captured by traditional correlation analysis.
  7. How the YData Fabric Data Catalog works

    develop

    The Data Catalog within YData Fabric acts as a searchable repository for an organization's datasets. It serves as a unified view that captures schema and metadata to help data scientists and engineers manage and understand data.

    It functions through several integrated layers:

    1. Ingestion: Uses built-in connectors to pull data from multiple sources.
    2. Metadata Capture: Automatically stores information regarding data types, lineage (source), update frequency, and relationships.
    3. Profiling & Analysis: Provides an interactive layer to drill down into data distributions and interactions.
    4. Quality Monitoring: Maintains data quality indexes (completeness, uniqueness, etc.) to ensure data reliability.
    5. Governance: Enforces security through access controls and identifies sensitive information for regulatory compliance.
  8. Understand the YData Profiling type system

    develop

    Beyond logical types (like integer or float), data-profiling uses a powerful type system backed by visions to allow analysis through higher-level lenses.

    Currently recognized types include:

    • Boolean
    • Numerical
    • Date (and Datetime)
    • Categorical
    • Time-series
    • URL
    • Path
    • File
    • Image

    Users can customize summarizations and type definitions. The default typeset implementation can be found in the source code.