Обнаружение строк, уникальность которых не указана в PolarsPython

Программы на Python
Ответить
Anonymous
 Обнаружение строк, уникальность которых не указана в Polars

Сообщение Anonymous »

В настоящее время у меня возникла следующая проблема. Мне нужно проверить, нет ли нарушения, если значения столбца ID, table и value_a не уникальны.

Код: Выделить всё

import polars as pl

df = pl.DataFrame(
{
"ID": ["1", "1", "1", "1", "1"],
"column": ["foo", "foo", "bar", "ham", "egg"],
"table": ["A", "A", "C", "D", "E"],
"value_a": ["tree", tree, None, "bean", None,],
"value_b": ["Lorem", "Ipsum", "Dal", "Curry", "Dish",],
"mandatory": ["M", "M", "M", "CM", "M"]
}
)
print(df)

Код: Выделить всё

shape: (5, 6)
┌─────┬────────┬───────┬─────────┬─────────┬───────────┐
│ ID  ┆ column ┆ table ┆ value_a ┆ value_b ┆ mandatory │
│ --- ┆ ---    ┆ ---   ┆ ---     ┆ ---     ┆ ---       │
│ str ┆ str    ┆ str   ┆ str     ┆ str     ┆ str       │
╞═════╪════════╪═══════╪═════════╪═════════╪═══════════╡
│ 1   ┆ foo    ┆ A     ┆ tree    ┆ Lorem   ┆ M         │
│ 1   ┆ foo    ┆ B     ┆ tree    ┆ Ipsum   ┆ M         │
│ 1   ┆ bar    ┆ C     ┆ null    ┆ Dal     ┆ M         │
│ 1   ┆ ham    ┆ D     ┆ bean    ┆ Curry   ┆ M         │
│ 1   ┆ egg    ┆ E     ┆ null    ┆ Dish    ┆ M         │
└─────┴────────┴───────┴─────────┴─────────┴───────────┘
В случае df необходимо создать отчет о нарушении со следующим выделенным выводом:

Код: Выделить всё

shape: (2, 8)
┌───────┬─────┬────────┬───────┬─────────┬─────────┬───────────┬─────────────────────────┐
│ index ┆ ID  ┆ column ┆ table ┆ value_a ┆ value_b ┆ mandatory ┆ warning                 │
│ ---   ┆ --- ┆ ---    ┆ ---   ┆ ---     ┆ ---     ┆ ---       ┆ ---                     │
│ i64   ┆ str ┆ str    ┆ str   ┆ str     ┆ str     ┆ str       ┆ str                     │
╞═══════╪═════╪════════╪═══════╪═════════╪═════════╪═══════════╪═════════════════════════╡
│ 0     ┆ 1   ┆ foo    ┆ A     ┆ tree    ┆ Lorem   ┆ M         ┆ Row value is not unique │
│ 1     ┆ 1   ┆ foo    ┆ A     ┆ tree    ┆ Ipsum   ┆ M         ┆ Row value is not unique │
└───────┴─────┴────────┴───────┴─────────┴─────────┴───────────┴─────────────────────────┘
Отчет должен содержать столбец индекса и столбец предупреждения. Я использовал эту строку кода, чтобы определить, есть ли в строке нулевые значения:

Код: Выделить всё

report = (df.with_row_count("index")
.filter(pl.any(pl.col("*").is_null()) & pl.col("mandatory").eq("M"))
.with_columns(pl.lit("Missing value detected").alias("warning"))
)
Как мне адаптировать этот код, чтобы я, с одной стороны, обнаруживал пропущенные значения, а с другой стороны, идентифицировал уникальные строки. Возможно, я создаю два отчета и использую .vstack(), чтобы объединить оба отчета в один окончательный. Как бы вы это решили?


Подробнее здесь: https://stackoverflow.com/questions/756 ... -in-polars
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»