Get a report of the validation results as a DataFrame.
Validate.get_dataframe_report(tbl_type="polars")
The get_dataframe_report() method returns a compact, row-wise summary of validation step results as a DataFrame. Each row corresponds to a single validation step. This is useful for logging, exporting (e.g., writing to CSV or Parquet), and programmatic analysis of validation outcomes.
The output format depends on tbl_type=: Polars DataFrame (default), Pandas DataFrame, or DuckDB via an Ibis memtable.
Parameters
tbl_type: Literal["polars", "pandas", "duckdb"] = "polars"
-
The output backend. One of
"polars" (default), "pandas", or "duckdb".
Returns
polars.DataFrame | pandas.DataFrame | ibis.expr.types.relations.Table
-
A tabular summary of validation results. When
tbl_type="duckdb", the return value is an Ibis memtable (a Table expression).
Raises
ValueError
-
If tbl_type= is not one of "polars", "pandas", or "duckdb".
ImportError
-
If the required library for the chosen
tbl_type= is not installed.
Output Columns
The returned DataFrame contains the following columns:
active: Whether the validation step was active (True/False).
step_number: The 1-indexed step number.
step_description: The assertion type (e.g., "col_vals_gt").
columns: The column name validated.
values: The comparison value used in the validation. For regex validations, just the pattern string is included.
step_evaluated: Whether the step was evaluated without error.
units: Total number of test units.
all_units_passed: Whether every test unit passed.
pass_n: Number of passing test units.
pass_pct: Fraction of test units that passed (0.0-1.0).
failed_n: Number of failing test units.
failed_pct: Fraction of test units that failed (0.0-1.0).
- warning, error, critical: Whether the respective threshold was exceeded.
brief: A coalesced description of the step (from manual brief or auto-generated brief).
preprocessed: Whether a preprocessing function was applied.
segmented: Whether the step used segmented validation.
For inactive steps (active=False), the result columns (step_evaluated through critical) are set to None/null.
Examples
Create a validation, interrogate, and get the results as a Polars DataFrame:
import pointblank as pb
validation = (
pb.Validate(
data=pb.load_dataset("small_table", tbl_type="polars"),
label="My validation",
)
.col_vals_gt(columns="d", value=100)
.col_vals_regex(columns="b", pattern=r"[0-9]-[a-z]{3}-[0-9]{3}")
.interrogate()
)
validation.get_dataframe_report()
shape: (2, 18)
| bool |
i64 |
str |
str |
object |
bool |
i64 |
bool |
i64 |
f64 |
i64 |
f64 |
bool |
bool |
bool |
str |
bool |
bool |
| true |
1 |
"col_vals_gt" |
"d" |
100 |
null |
13 |
true |
13 |
1.0 |
0 |
0.0 |
null |
null |
null |
"Expect that values in `d` shou… |
false |
false |
| true |
2 |
"col_vals_regex" |
"b" |
[0-9]-[a-z]{3}-[0-9]{3} |
null |
13 |
true |
13 |
1.0 |
0 |
0.0 |
null |
null |
null |
"Expect that values in `b` shou… |
false |
false |
Get the results as a Pandas DataFrame instead:
validation.get_dataframe_report(tbl_type="pandas")
| 0 |
True |
1 |
col_vals_gt |
d |
100 |
None |
13 |
True |
13 |
1.0 |
0 |
0.0 |
None |
None |
None |
Expect that values in `d` should be > `100`. |
False |
False |
| 1 |
True |
2 |
col_vals_regex |
b |
[0-9]-[a-z]{3}-[0-9]{3} |
None |
13 |
True |
13 |
1.0 |
0 |
0.0 |
None |
None |
None |
Expect that values in `b` should match the reg... |
False |
False |