Оптимальный способ получить все повторяющиеся строки в кадре данных PolarsPython

Программы на Python
Ответить
Anonymous
 Оптимальный способ получить все повторяющиеся строки в кадре данных Polars

Сообщение Anonymous »

Я хочу отфильтровать все повторяющиеся строки из кадра данных Polars. Что я пробовал:

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

df = pl.DataFrame([['1', '1', '1', '1'], ['7', '7', '2', '7'], ['3', '9', '3', '9']])
df

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

shape: (4, 3)
┌──────────┬──────────┬──────────┐
│ column_0 ┆ column_1 ┆ column_2 │
│ ---      ┆ ---      ┆ ---      │
│ str      ┆ str      ┆ str      │
╞══════════╪══════════╪══════════╡
│ 1        ┆ 7        ┆ 3        │
│ 1        ┆ 7        ┆ 9        │
│ 1        ┆ 2        ┆ 3        │
│ 1        ┆ 7        ┆ 9        │
└──────────┴──────────┴──────────┘

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

df.filter(pl.all().is_duplicated())

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

shape: (3, 3)
┌──────────┬──────────┬──────────┐
│ column_0 ┆ column_1 ┆ column_2 │
│ ---      ┆ ---      ┆ ---      │
│ str      ┆ str      ┆ str      │
╞══════════╪══════════╪══════════╡
│ 1        ┆ 7        ┆ 3        │ # DO NOT WANT
│ 1        ┆ 7        ┆ 9        │
│ 1        ┆ 7        ┆ 9        │
└──────────┴──────────┴──────────┘
При этом выбирается первая строка, поскольку она отображается по столбцу и возвращает каждую строку, в которой все столбцы имеют соответствующий дубликат в соответствующем столбце — это не ожидаемый результат.
Логическое индексирование не работает:

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

df[df.is_duplicated(), :]
# TypeError: selecting rows by passing a boolean mask to `__getitem__` is not supported
# Hint: Use the `filter` method instead.
Это заставляет меня задуматься
  • есть ли способ использовать .filter() и выражения для достижения желаемого результата
  • какой наиболее эффективный способ достижения желаемого результата


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

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

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

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

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

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