DSPROGLIB Telegram 6553
🚨 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()


Реальный пример на Polars:
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

Библиотека дата-сайентиста #буст
Please open Telegram to view this post
VIEW IN TELEGRAM



tgoop.com/dsproglib/6553
Create:
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()


Реальный пример на Polars:
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

Библиотека дата-сайентиста #буст

BY Библиотека дата-сайентиста | Data Science, Machine learning, анализ данных, машинное обучение




Share with your friend now:
tgoop.com/dsproglib/6553

View MORE
Open in Telegram


Telegram News

Date: |

Hashtags are a fast way to find the correct information on social media. To put your content out there, be sure to add hashtags to each post. We have two intelligent tips to give you: The best encrypted messaging apps The administrator of a telegram group, "Suck Channel," was sentenced to six years and six months in prison for seven counts of incitement yesterday. Telegram desktop app: In the upper left corner, click the Menu icon (the one with three lines). Select “New Channel” from the drop-down menu. Telegram channels fall into two types:
from us


Telegram Библиотека дата-сайентиста | Data Science, Machine learning, анализ данных, машинное обучение
FROM American