Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
e97b755
init
MoritzPotthoffQC Jul 10, 2026
1e72823
better output
MoritzPotthoffQC Jul 10, 2026
1d7bdeb
cleanup
MoritzPotthoffQC Jul 10, 2026
a74429f
refactor
MoritzPotthoffQC Jul 10, 2026
71338c9
Potential fix for pull request finding
MoritzPotthoffQC Jul 10, 2026
cd33f6a
fix
MoritzPotthoffQC Jul 10, 2026
f66bfa0
fix
MoritzPotthoffQC Jul 10, 2026
db3b168
Potential fix for pull request finding
MoritzPotthoffQC Jul 10, 2026
eb1c427
Merge branch 'main' into generalize-metrics-add-nullability
MoritzPotthoffQC Jul 10, 2026
2923f2e
Update docs/api/metrics.rst
MoritzPotthoffQC Jul 12, 2026
e1ea6bd
Update tests/summary/fixtures/metrics_null_fraction/test_metrics_null…
MoritzPotthoffQC Jul 12, 2026
fc0426a
chore: Update pixi lockfile (#42)
quant-ranger[bot] Jul 10, 2026
f5b9117
review
MoritzPotthoffQC Jul 12, 2026
e374f0d
fix
MoritzPotthoffQC Jul 12, 2026
627721e
fix
MoritzPotthoffQC Jul 12, 2026
cf686b4
Merge remote-tracking branch 'origin/main' into generalize-metrics-ad…
MoritzPotthoffQC Jul 13, 2026
529b917
fix
MoritzPotthoffQC Jul 13, 2026
6f5671d
fix
MoritzPotthoffQC Jul 13, 2026
bfc8d8c
fix docs
MoritzPotthoffQC Jul 13, 2026
bfc03ad
fix docs
MoritzPotthoffQC Jul 14, 2026
b309e7a
review
MoritzPotthoffQC Jul 15, 2026
901590c
fix CLI
MoritzPotthoffQC Jul 15, 2026
e35a81e
init
MoritzPotthoffQC Jul 16, 2026
9177c8c
fix
MoritzPotthoffQC Jul 16, 2026
b1c4028
Merge remote-tracking branch 'origin/main' into more-data-metrics
MoritzPotthoffQC Jul 16, 2026
c832e95
improve
MoritzPotthoffQC Jul 16, 2026
7d2a67f
fix overflow
MoritzPotthoffQC Jul 16, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
50 changes: 48 additions & 2 deletions diffly/metrics/data.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
from ._common import Metric, MetricFn


def null_fraction_change(left: pl.Expr, right: pl.Expr) -> pl.Expr:
def null_fraction_data(left: pl.Expr, right: pl.Expr) -> pl.Expr:
Comment thread
MoritzPotthoffQC marked this conversation as resolved.
"""Change in the fraction of null entries, rendered as ``<old> -> <new> (<delta>)``.

``old`` and ``new`` are the null percentages of the left and right side, and
Expand All @@ -34,8 +34,39 @@ def null_fraction_change(left: pl.Expr, right: pl.Expr) -> pl.Expr:
)


def mean_data(left: pl.Expr, right: pl.Expr) -> pl.Expr:
"""Change in the mean, rendered as ``<old mean> -> <new mean> (<delta>)``."""
return _render_numeric_change(left.mean(), right.mean())


def median_data(left: pl.Expr, right: pl.Expr) -> pl.Expr:
"""Change in the median, rendered as ``<old median> -> <new median> (<delta>)``."""
return _render_numeric_change(left.median(), right.median())


def min_data(left: pl.Expr, right: pl.Expr) -> pl.Expr:
"""Change in the minimum, rendered as ``<old min> -> <new min> (<delta>)``."""
return _render_numeric_change(left.min(), right.min())


def max_data(left: pl.Expr, right: pl.Expr) -> pl.Expr:
"""Change in the maximum, rendered as ``<old max> -> <new max> (<delta>)``."""
return _render_numeric_change(left.max(), right.max())


def std_data(left: pl.Expr, right: pl.Expr) -> pl.Expr:
"""Change in the standard deviation, rendered as ``<old std> -> <new std>
(<delta>)``."""
return _render_numeric_change(left.std(), right.std())
Comment thread
MoritzPotthoffQC marked this conversation as resolved.


DEFAULT_DATA_METRICS: dict[str, MetricFn | Metric] = {
"Null%": Metric(fn=null_fraction_change, selector=cs.all()),
"Null% (data)": Metric(fn=null_fraction_data, selector=cs.all()),
"Mean (data)": Metric(fn=mean_data, selector=cs.numeric()),
"Median (data)": Metric(fn=median_data, selector=cs.numeric()),
"Min (data)": Metric(fn=min_data, selector=cs.numeric()),
"Max (data)": Metric(fn=max_data, selector=cs.numeric()),
"Std (data)": Metric(fn=std_data, selector=cs.numeric()),
Comment thread
MoritzPotthoffQC marked this conversation as resolved.
}
"""Preset metrics describing the left and right datasets individually."""

Expand All @@ -56,6 +87,21 @@ def _percentage_string(
return body


def _numeric_string(value: pl.Expr, signed: bool) -> pl.Expr:
"""Format a numeric value for display, optionally with an explicit sign."""
rounded = value.round_sig_figs(4)
body = pl.format("{}", rounded)
if signed:
return pl.when(rounded >= 0).then(pl.format("+{}", body)).otherwise(body)
return body


def _render_numeric_change(old: pl.Expr, new: pl.Expr) -> pl.Expr:
"""Render a change between two numeric aggregations as ``<old> -> <new>
(<delta>)``."""
return _render_change(old, new, _numeric_string)
Comment thread
MoritzPotthoffQC marked this conversation as resolved.


def _render_change(
old: pl.Expr,
new: pl.Expr,
Expand Down
2 changes: 1 addition & 1 deletion diffly/summary.py
Original file line number Diff line number Diff line change
Expand Up @@ -580,7 +580,7 @@ def _section_columns(self) -> RenderableType:
)
matches.add_column("Match Rate", justify="right")
for label in metric_labels:
matches.add_column(label, justify="right")
matches.add_column(label, justify="right", overflow=OVERFLOW)
has_top_changes_column = any(
c.changes is not None for c in columns if c.match_rate < 1
)
Expand Down
7 changes: 6 additions & 1 deletion docs/api/metrics.rst
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,12 @@ understand how a change affects the data.
.. autosummary::
:toctree: _gen/

null_fraction_change
null_fraction_data
mean_data
median_data
min_data
max_data
std_data

.. autodata:: DEFAULT_DATA_METRICS
:no-value:
4 changes: 2 additions & 2 deletions tests/cli/test_cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -101,9 +101,9 @@ def test_cli_unknown_metric(tmp_path: Path) -> None:
assert "Unknown metric" in result.output


@pytest.mark.parametrize("metric_name", ["Mean", "Null%"])
@pytest.mark.parametrize("metric_name", ["Mean", "Null% (data)"])
def test_cli_metric_from_both_defaults(tmp_path: Path, metric_name: str) -> None:
# Both change ("mean") and data ("Null%") presets are selectable via --metric.
# Both change ("Mean") and data ("Null% (data)") presets are selectable via --metric.
left = pl.DataFrame({"id": [1, 2], "x": [1.0, None]})
right = pl.DataFrame({"id": [1, 2], "x": [1.0, 3.0]})
left.write_parquet(tmp_path / "left.parquet")
Expand Down

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Didn't we want to introduce a new section? 😄

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I thought we do that later (as long as you do not mix data and change metrics, the current setup is fine IMO). But I can also work on it before we merge this PR

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah, I meant it's fine within the context of the previous PR, I'd rather change it as we extend metrics 😄

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Okay I will add the new section in a separate PR and redraft this one until then

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

#47

Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,10 @@
▔▔▔▔▔▔▔
┏━━━━━━━━┳━━━━━━━━┳━━━━━━━━┳━━━━━━━━┳━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━┓
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ Mean ┃ Mean ┃
┃ ┃ Match ┃ Mean ┃ Median ┃ Minimum ┃ Maxim… ┃ Standa… ┃ Absol… ┃ Relati… ┃
┃ Column ┃ Rate ┃ Delta ┃ Delta ┃ Delta ┃ Delta ┃ Deviat… ┃ Devia… ┃ Deviat… ┃
┃ ┃ ┃ ┃ ┃ ┃ ┃ Standar ┃ Absolu ┃ Relativ ┃
┃ ┃ ┃ ┃ ┃ ┃ Maximu ┃ d ┃ te ┃ e ┃
┃ ┃ Match ┃ Mean ┃ Median ┃ Minimum ┃ m ┃ Deviati ┃ Deviat ┃ Deviati ┃
┃ Column ┃ Rate ┃ Delta ┃ Delta ┃ Delta ┃ Delta ┃ on ┃ ion ┃ on ┃
┡━━━━━━━━╇━━━━━━━━╇━━━━━━━━╇━━━━━━━━╇━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━┩
│ price │ 60.00% │ 0.6 │ 0 │ 0 │ 2 │ 0.8944 │ 0.6 │ 0.02 │
│ qty │ 80.00% │ 0.2 │ 0 │ 0 │ 1 │ 0.4472 │ 0.2 │ 0.05 │
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,10 @@
▔▔▔▔▔▔▔
┏━━━━━━━━┳━━━━━━━━┳━━━━━━━━┳━━━━━━━━┳━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━┓
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ Mean ┃ Mean ┃
┃ ┃ Match ┃ Mean ┃ Median ┃ Minimum ┃ Maxim… ┃ Standa… ┃ Absol… ┃ Relati… ┃
┃ Column ┃ Rate ┃ Delta ┃ Delta ┃ Delta ┃ Delta ┃ Deviat… ┃ Devia… ┃ Deviat… ┃
┃ ┃ ┃ ┃ ┃ ┃ ┃ Standar ┃ Absolu ┃ Relativ ┃
┃ ┃ ┃ ┃ ┃ ┃ Maximu ┃ d ┃ te ┃ e ┃
┃ ┃ Match ┃ Mean ┃ Median ┃ Minimum ┃ m ┃ Deviati ┃ Deviat ┃ Deviati ┃
┃ Column ┃ Rate ┃ Delta ┃ Delta ┃ Delta ┃ Delta ┃ on ┃ ion ┃ on ┃
┡━━━━━━━━╇━━━━━━━━╇━━━━━━━━╇━━━━━━━━╇━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━┩
│ price │ 60.00% │ 0.6 │ 0 │ 0 │ 2 │ 0.8944 │ 0.6 │ 0.02 │
│ qty │ 80.00% │ 0.2 │ 0 │ 0 │ 1 │ 0.4472 │ 0.2 │ 0.05 │
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,10 @@
▔▔▔▔▔▔▔
┏━━━━━━━━┳━━━━━━━━┳━━━━━━━━┳━━━━━━━━┳━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━┓
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ Mean ┃ Mean ┃
┃ ┃ Match ┃ Mean ┃ Median ┃ Minimum ┃ Maxim… ┃ Standa… ┃ Absol… ┃ Relati… ┃
┃ Column ┃ Rate ┃ Delta ┃ Delta ┃ Delta ┃ Delta ┃ Deviat… ┃ Devia… ┃ Deviat… ┃
┃ ┃ ┃ ┃ ┃ ┃ ┃ Standar ┃ Absolu ┃ Relativ ┃
┃ ┃ ┃ ┃ ┃ ┃ Maximu ┃ d ┃ te ┃ e ┃
┃ ┃ Match ┃ Mean ┃ Median ┃ Minimum ┃ m ┃ Deviati ┃ Deviat ┃ Deviati ┃
┃ Column ┃ Rate ┃ Delta ┃ Delta ┃ Delta ┃ Delta ┃ on ┃ ion ┃ on ┃
┡━━━━━━━━╇━━━━━━━━╇━━━━━━━━╇━━━━━━━━╇━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━┩
│ price │ 60.00% │ 0.6 │ 0 │ 0 │ 2 │ 0.8944 │ 0.6 │ 0.02 │
│ qty │ 80.00% │ 0.2 │ 0 │ 0 │ 1 │ 0.4472 │ 0.2 │ 0.05 │
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,10 @@
▔▔▔▔▔▔▔
┏━━━━━━━━┳━━━━━━━━┳━━━━━━━━┳━━━━━━━━┳━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━┓
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ Mean ┃ Mean ┃
┃ ┃ Match ┃ Mean ┃ Median ┃ Minimum ┃ Maxim… ┃ Standa… ┃ Absol… ┃ Relati… ┃
┃ Column ┃ Rate ┃ Delta ┃ Delta ┃ Delta ┃ Delta ┃ Deviat… ┃ Devia… ┃ Deviat… ┃
┃ ┃ ┃ ┃ ┃ ┃ ┃ Standar ┃ Absolu ┃ Relativ ┃
┃ ┃ ┃ ┃ ┃ ┃ Maximu ┃ d ┃ te ┃ e ┃
┃ ┃ Match ┃ Mean ┃ Median ┃ Minimum ┃ m ┃ Deviati ┃ Deviat ┃ Deviati ┃
┃ Column ┃ Rate ┃ Delta ┃ Delta ┃ Delta ┃ Delta ┃ on ┃ ion ┃ on ┃
┡━━━━━━━━╇━━━━━━━━╇━━━━━━━━╇━━━━━━━━╇━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━┩
│ price │ 60.00% │ 0.6 │ 0 │ 0 │ 2 │ 0.8944 │ 0.6 │ 0.02 │
│ qty │ 80.00% │ 0.2 │ 0 │ 0 │ 1 │ 0.4472 │ 0.2 │ 0.05 │
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,10 @@
▔▔▔▔▔▔▔
┏━━━━━━━┳━━━━━━━┳━━━━━━━━┳━━━━━━━┳━━━━━━━━┳━━━━━━━┳━━━━━━━━┳━━━━━━━┳━━━━━━━━┳━━━━━━━┓
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ Mean ┃ Mean ┃ ┃
┃ Colum ┃ Match ┃ Mean ┃ Medi… ┃ Minim… ┃ Maxi… ┃ Stand… ┃ Abso… ┃ Relat… ┃ Top ┃
┃ n ┃ Rate ┃ Delta ┃ Delta ┃ Delta ┃ Delta ┃ Devia… ┃ Devi… ┃ Devia… ┃ Chan… ┃
┃ ┃ ┃ ┃ ┃ ┃ ┃ Standa ┃ Absol ┃ Relati ┃ ┃
┃ ┃ ┃ ┃ Media ┃ Minimu ┃ Maxim ┃ rd ┃ ute ┃ ve ┃ ┃
┃ Colum ┃ Match ┃ Mean ┃ n ┃ m ┃ um ┃ Deviat ┃ Devia ┃ Deviat ┃ Top ┃
┃ n ┃ Rate ┃ Delta ┃ Delta ┃ Delta ┃ Delta ┃ ion ┃ tion ┃ ion ┃ Chan… ┃
┡━━━━━━━╇━━━━━━━╇━━━━━━━━╇━━━━━━━╇━━━━━━━━╇━━━━━━━╇━━━━━━━━╇━━━━━━━╇━━━━━━━━╇━━━━━━━┩
│ price │ 60.0… │ 0.6 │ 0 │ 0 │ 2 │ 0.8944 │ 0.6 │ 0.02 │ 40.0 │
│ │ │ │ │ │ │ │ │ │ -> │
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,10 @@
▔▔▔▔▔▔▔
┏━━━━━━━┳━━━━━━━┳━━━━━━━━┳━━━━━━━┳━━━━━━━━┳━━━━━━━┳━━━━━━━━┳━━━━━━━┳━━━━━━━━┳━━━━━━━┓
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ Mean ┃ Mean ┃ ┃
┃ Colum ┃ Match ┃ Mean ┃ Medi… ┃ Minim… ┃ Maxi… ┃ Stand… ┃ Abso… ┃ Relat… ┃ Top ┃
┃ n ┃ Rate ┃ Delta ┃ Delta ┃ Delta ┃ Delta ┃ Devia… ┃ Devi… ┃ Devia… ┃ Chan… ┃
┃ ┃ ┃ ┃ ┃ ┃ ┃ Standa ┃ Absol ┃ Relati ┃ ┃
┃ ┃ ┃ ┃ Media ┃ Minimu ┃ Maxim ┃ rd ┃ ute ┃ ve ┃ ┃
┃ Colum ┃ Match ┃ Mean ┃ n ┃ m ┃ um ┃ Deviat ┃ Devia ┃ Deviat ┃ Top ┃
┃ n ┃ Rate ┃ Delta ┃ Delta ┃ Delta ┃ Delta ┃ ion ┃ tion ┃ ion ┃ Chan… ┃
┡━━━━━━━╇━━━━━━━╇━━━━━━━━╇━━━━━━━╇━━━━━━━━╇━━━━━━━╇━━━━━━━━╇━━━━━━━╇━━━━━━━━╇━━━━━━━┩
│ price │ 60.0… │ 0.6 │ 0 │ 0 │ 2 │ 0.8944 │ 0.6 │ 0.02 │ 40.0 │
│ │ │ │ │ │ │ │ │ │ -> │
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,10 @@
▔▔▔▔▔▔▔
┏━━━━━━━┳━━━━━━━┳━━━━━━━━┳━━━━━━━┳━━━━━━━━┳━━━━━━━┳━━━━━━━━┳━━━━━━━┳━━━━━━━━┳━━━━━━━┓
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ Mean ┃ Mean ┃ ┃
┃ Colum ┃ Match ┃ Mean ┃ Medi… ┃ Minim… ┃ Maxi… ┃ Stand… ┃ Abso… ┃ Relat… ┃ Top ┃
┃ n ┃ Rate ┃ Delta ┃ Delta ┃ Delta ┃ Delta ┃ Devia… ┃ Devi… ┃ Devia… ┃ Chan… ┃
┃ ┃ ┃ ┃ ┃ ┃ ┃ Standa ┃ Absol ┃ Relati ┃ ┃
┃ ┃ ┃ ┃ Media ┃ Minimu ┃ Maxim ┃ rd ┃ ute ┃ ve ┃ ┃
┃ Colum ┃ Match ┃ Mean ┃ n ┃ m ┃ um ┃ Deviat ┃ Devia ┃ Deviat ┃ Top ┃
┃ n ┃ Rate ┃ Delta ┃ Delta ┃ Delta ┃ Delta ┃ ion ┃ tion ┃ ion ┃ Chan… ┃
┡━━━━━━━╇━━━━━━━╇━━━━━━━━╇━━━━━━━╇━━━━━━━━╇━━━━━━━╇━━━━━━━━╇━━━━━━━╇━━━━━━━━╇━━━━━━━┩
│ price │ 60.0… │ 0.6 │ 0 │ 0 │ 2 │ 0.8944 │ 0.6 │ 0.02 │ 40.0 │
│ │ │ │ │ │ │ │ │ │ -> │
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,10 @@
▔▔▔▔▔▔▔
┏━━━━━━━┳━━━━━━━┳━━━━━━━━┳━━━━━━━┳━━━━━━━━┳━━━━━━━┳━━━━━━━━┳━━━━━━━┳━━━━━━━━┳━━━━━━━┓
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ Mean ┃ Mean ┃ ┃
┃ Colum ┃ Match ┃ Mean ┃ Medi… ┃ Minim… ┃ Maxi… ┃ Stand… ┃ Abso… ┃ Relat… ┃ Top ┃
┃ n ┃ Rate ┃ Delta ┃ Delta ┃ Delta ┃ Delta ┃ Devia… ┃ Devi… ┃ Devia… ┃ Chan… ┃
┃ ┃ ┃ ┃ ┃ ┃ ┃ Standa ┃ Absol ┃ Relati ┃ ┃
┃ ┃ ┃ ┃ Media ┃ Minimu ┃ Maxim ┃ rd ┃ ute ┃ ve ┃ ┃
┃ Colum ┃ Match ┃ Mean ┃ n ┃ m ┃ um ┃ Deviat ┃ Devia ┃ Deviat ┃ Top ┃
┃ n ┃ Rate ┃ Delta ┃ Delta ┃ Delta ┃ Delta ┃ ion ┃ tion ┃ ion ┃ Chan… ┃
┡━━━━━━━╇━━━━━━━╇━━━━━━━━╇━━━━━━━╇━━━━━━━━╇━━━━━━━╇━━━━━━━━╇━━━━━━━╇━━━━━━━━╇━━━━━━━┩
│ price │ 60.0… │ 0.6 │ 0 │ 0 │ 2 │ 0.8944 │ 0.6 │ 0.02 │ 40.0 │
│ │ │ │ │ │ │ │ │ │ -> │
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,10 @@
▔▔▔▔▔▔▔
┏━━━━━━━━┳━━━━━━━━┳━━━━━━━━┳━━━━━━━━┳━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━┓
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ Mean ┃ Mean ┃
┃ ┃ Match ┃ Mean ┃ Median ┃ Minimum ┃ Maxim… ┃ Standa… ┃ Absol… ┃ Relati… ┃
┃ Column ┃ Rate ┃ Delta ┃ Delta ┃ Delta ┃ Delta ┃ Deviat… ┃ Devia… ┃ Deviat… ┃
┃ ┃ ┃ ┃ ┃ ┃ ┃ Standar ┃ Absolu ┃ Relativ ┃
┃ ┃ ┃ ┃ ┃ ┃ Maximu ┃ d ┃ te ┃ e ┃
┃ ┃ Match ┃ Mean ┃ Median ┃ Minimum ┃ m ┃ Deviati ┃ Deviat ┃ Deviati ┃
┃ Column ┃ Rate ┃ Delta ┃ Delta ┃ Delta ┃ Delta ┃ on ┃ ion ┃ on ┃
┡━━━━━━━━╇━━━━━━━━╇━━━━━━━━╇━━━━━━━━╇━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━┩
│ price │ 60.00% │ 0.6 │ 0 │ 0 │ 2 │ 0.8944 │ 0.6 │ 0.02 │
│ qty │ 80.00% │ 0.2 │ 0 │ 0 │ 1 │ 0.4472 │ 0.2 │ 0.05 │
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,10 @@
▔▔▔▔▔▔▔
┏━━━━━━━━┳━━━━━━━━┳━━━━━━━━┳━━━━━━━━┳━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━┓
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ Mean ┃ Mean ┃
┃ ┃ Match ┃ Mean ┃ Median ┃ Minimum ┃ Maxim… ┃ Standa… ┃ Absol… ┃ Relati… ┃
┃ Column ┃ Rate ┃ Delta ┃ Delta ┃ Delta ┃ Delta ┃ Deviat… ┃ Devia… ┃ Deviat… ┃
┃ ┃ ┃ ┃ ┃ ┃ ┃ Standar ┃ Absolu ┃ Relativ ┃
┃ ┃ ┃ ┃ ┃ ┃ Maximu ┃ d ┃ te ┃ e ┃
┃ ┃ Match ┃ Mean ┃ Median ┃ Minimum ┃ m ┃ Deviati ┃ Deviat ┃ Deviati ┃
┃ Column ┃ Rate ┃ Delta ┃ Delta ┃ Delta ┃ Delta ┃ on ┃ ion ┃ on ┃
┡━━━━━━━━╇━━━━━━━━╇━━━━━━━━╇━━━━━━━━╇━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━┩
│ price │ 60.00% │ 0.6 │ 0 │ 0 │ 2 │ 0.8944 │ 0.6 │ 0.02 │
│ qty │ 80.00% │ 0.2 │ 0 │ 0 │ 1 │ 0.4472 │ 0.2 │ 0.05 │
Expand Down
Loading