ydata-profiling_example

`filoma` recommends using `ydata-profiling` to generate a report for a given dataframe. Below is an example of how to do this in a Jupyter notebook.

In [1]:

    !uv pip install ydata-profiling ipywidgets ipympl setuptools --upgrade

    Using Python 3.11.11 environment at: /home/kalfasy/repos/filoma/.venv
    ⠋ Resolving dependencies...
    ⠙ Resolving dependencies...
    ⠋ Resolving dependencies...
    ⠙ Resolving dependencies...

    ⠙ ydata-profiling==4.16.1

    ⠙ htmlmin==0.1.12
    ⠙ imagehash==4.3.1
    ⠙ ipywidgets==8.1.7
    ⠙ ipympl==0.9.7
    ⠙ setuptools==80.9.0
    ⠙ scipy==1.15.3
    ⠙ pandas==2.3.2
    ⠙ matplotlib==3.10.0
    ⠙ pydantic==2.11.9

    ⠙ pydantic-core==2.33.2
    ⠙ pyyaml==6.0.2
    ⠙ jinja2==3.1.6
    ⠙ visions==0.8.1
    ⠙ visions==0.8.1
    ⠙ numpy==2.1.3
    ⠙ visions==0.8.1
    ⠙ visions==0.8.1
    ⠙ numpy==2.1.3
    ⠙ numpy==2.1.3
    ⠙ matplotlib==3.10.0
    ⠙ llvmlite==0.44.0

    Resolved 70 packages in 221ms
    ⠋ Preparing packages... (0/0)
    ⠋ Preparing packages... (0/9)
    ⠙ Preparing packages... (0/9)
    ⠙  (9/9)
    Prepared 9 packages in 0.37ms
    Uninstalled 9 packages in 21ms
    ░░░░░░░░░░░░░░░░░░░░ [0/0] Installing wheels...
    ░░░░░░░░░░░░░░░░░░░░ [0/9] Installing wheels...
    ░░░░░░░░░░░░░░░░░░░░ [0/9] typing-extensions==4.15.0
    ██░░░░░░░░░░░░░░░░░░ [1/9] typing-extensions==4.15.0
    ██░░░░░░░░░░░░░░░░░░ [1/9] executing==2.2.1
    ████░░░░░░░░░░░░░░░░ [2/9] executing==2.2.1
    ████░░░░░░░░░░░░░░░░ [2/9] certifi==2025.8.3
    ██████░░░░░░░░░░░░░░ [3/9] certifi==2025.8.3
    ██████░░░░░░░░░░░░░░ [3/9] requests==2.32.5
    ████████░░░░░░░░░░░░ [4/9] requests==2.32.5
    ████████░░░░░░░░░░░░ [4/9] parso==0.8.5
    ███████████░░░░░░░░░ [5/9] parso==0.8.5
    ███████████░░░░░░░░░ [5/9] charset-normalizer==3.4.3
    █████████████░░░░░░░ [6/9] charset-normalizer==3.4.3
    █████████████░░░░░░░ [6/9] prompt-toolkit==3.0.52
    ███████████████░░░░░ [7/9] prompt-toolkit==3.0.52
    ███████████████░░░░░ [7/9] ipython==9.5.0
    █████████████████░░░ [8/9] ipython==9.5.0
    █████████████████░░░ [8/9] numpy==2.1.3
    ████████████████████ [9/9] numpy==2.1.3
    Installed 9 packages in 11ms
     - certifi==2025.6.15
     + certifi==2025.8.3
     - charset-normalizer==3.4.2
     + charset-normalizer==3.4.3
     - executing==2.2.0
     + executing==2.2.1
     - ipython==9.4.0
     + ipython==9.5.0
     - numpy==2.3.1
     + numpy==2.1.3
     - parso==0.8.4
     + parso==0.8.5
     - prompt-toolkit==3.0.51
     + prompt-toolkit==3.0.52
     - requests==2.32.4
     + requests==2.32.5
     - typing-extensions==4.14.1
     + typing-extensions==4.15.0

In [2]:

    %reset -f
    %load_ext autoreload
    %autoreload 2

In [3]:

    import filoma

    df = filoma.probe_to_df("../")
    df = df.filter(df["suffix"] == ".py")

    2025-09-13 21:10:11.824 | DEBUG    | filoma.directories.directory_profiler:__init__:343 - Interactive environment detected, disabling progress bars to avoid conflicts

    2025-09-13 21:10:11.825 | INFO     | filoma.directories.directory_profiler:probe:430 - Starting directory analysis of '../' using 🐍 Python implementation

    2025-09-13 21:10:12.562 | SUCCESS  | filoma.directories.directory_profiler:probe:446 - Directory analysis completed in 0.74s - Found 45,702 items (42,116 files, 3,586 folders) using 🐍 Python

In [4]:

    from ydata_profiling import ProfileReport

    profile = ProfileReport(df.to_pandas(), title="Filoma Report");

Upgrade to ydata-sdk

Improve your data and profiling with ydata-sdk, featuring data quality scoring, redundancy detection, outlier identification, text validation, and synthetic data generation.

In [5]:

    profile

      0%|                                                                                       | 0/18 [00:00<?, ?it/s]

    100%|████████████████████████████████████████████████████████████████████████████| 18/18 [00:00<00:00, 2189.92it/s]

Out[5]:

In [ ]: