tg-me.com/dsproglib/6553
Last Update:
🚨 Pointblank — мощный инструмент для валидации данных
Если вы дата-сайентист, аналитик или инженер данных — эта библиотека точно заслуживает вашего внимания.
С интуитивным и цепочечным API, Pointblank позволяет:
— запускать точечные проверки качества данных,
— отслеживать критичные ошибки,
— автоматически формировать интерактивные отчёты,
— интегрироваться с Slack и другими системами.
Идеально для пайплайнов на pandas
, polars
или ibis
.
import pointblank as pb
validation = (
pb.Validate(data=pb.load_dataset("small_table"))
.col_vals_gt(columns="d", value=100) # Значения > 100
.col_vals_le(columns="c", value=5) # Значения <= 5
.col_exists(columns=["date", "date_time"]) # Проверка наличия колонок
.interrogate() # Выполнить валидацию
)
validation.get_tabular_report().show()
import pointblank as pb
import polars as pl
sales_data = pl.read_csv("sales_data.csv")
validation = (
pb.Validate(
data=sales_data,
tbl_name="sales_data",
label="Валидация реальных данных",
thresholds=(0.01, 0.02, 0.05),
actions=pb.Actions(
critical="Критичная ошибка качества данных на шаге {step} ({time})."
),
final_actions=pb.FinalActions(
pb.send_slack_notification("https://hooks.slack.com/services/your/webhook/url")
),
brief=True,
)
.col_vals_between(columns=["price", "quantity"], left=0, right=1000)
.col_vals_not_null(columns=pb.ends_with("_id"))
.col_vals_regex(columns="email", pattern="^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$")
.col_vals_in_set(columns="status", set=["pending", "shipped", "delivered", "returned"])
.conjointly(
lambda df: pb.expr_col("revenue") == pb.expr_col("price") * pb.expr_col("quantity"),
lambda df: pb.expr_col("tax") >= pb.expr_col("revenue") * 0.05
)
.interrogate()
)
# HTML-отчёт можно открыть в браузере:
validation.get_tabular_report().show("browser")
🛠 Установка:
pip install pointblank
# или с нужным бэкендом:
pip install "pointblank[pl]" # с Polars
pip install "pointblank[pd]" # с Pandas
pip install "pointblank[duckdb]" # с DuckDB (через Ibis)
pip install "pointblank[postgres]" # с PostgreSQL
Pointblank работает с
Polars
, Pandas
и Ibis
(через Narwhals) — то есть вы можете валидировать данные не только из CSV, но и из баз данных (PostgreSQL, MySQL, DuckDB и др.).👉 Ссылка на проект: https://clc.to/Ep7oDQ
Библиотека дата-сайентиста #буст