evo-dataframe-diff-report

SkillDev tools

Compares two pandas DataFrames (old vs new) by a key column to identify deleted rows and modified fields, then exports results as a properly formatted JSON report with NumPy-safe serialization.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the evo-dataframe-diff-report skill

What this skill tells your AI

The instructions your AI receives, as published by openlair/openskill in tasks-evolved/pdf-excel-diff/environment/skills/evo-dataframe-diff-report/SKILL.md and read by ahel’s review.

Compares old vs new DataFrames to find deletions and modifications, exports as JSON.

Key Functions

find_deleted_employees(df_old, df_new, id_column='ID')

Finds IDs in old but not in new. Returns sorted list of ID strings.

find_modified_employees(df_old, df_new, id_column='ID', numeric_columns=None, float_tolerance=1e-4)

Finds field-level changes for employees in both DataFrames. Returns list of dicts: {"id": "EMP00003", "field": "Salary", "old_value": 50020, "new_value": 55010} Sorted by (id, field).

build_diff_report(deleted, modified)

Builds the final report dict with 'deleted_employees' and 'modified_employees'.

export_diff_to_json(report, output_path, indent=2)

Writes report to JSON file using NumpyTypeEncoder for safe serialization.

Value Type Rules

  • Salary, Years: output as integers
  • Score: output as float (e.g., 4.3)
  • Text fields (First, Last, Dept, Position, Location): output as strings
  • NaN values: output as null

Usage

import sys
sys.path.insert(0, '/app/environment/skills/evo-dataframe-diff-report/scripts')
from utils import find_deleted_employees, find_modified_employees, build_diff_report, export_diff_to_json

deleted = find_deleted_employees(df_old, df_new, id_column='ID')
modified = find_modified_employees(df_old, df_new, id_column='ID',
                                   numeric_columns=['Salary', 'Years', 'Score'])
report = build_diff_report(deleted, modified)
export_diff_to_json(report, '/root/diff_report.json')

Dependencies

  • Requires normalized DataFrames from evo-pdf-excel-extraction
  • Both DataFrames must share the same column names and ID format

Signals

GitHub stars
89
Forks
4
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
evo-dataframe-diff-report
Source
github.com/openlair/openskill