Получите уникальные элементы в нескольких столбцах списка.Python

Программы на Python
Ответить
Anonymous
 Получите уникальные элементы в нескольких столбцах списка.

Сообщение Anonymous »

Например, рассмотрим DataFrame с несколькими столбцами списка:

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

df = pl.DataFrame({
"a": [range(1,3), range(5,10)],
"b": [range(4,9), range(6,11)]
})
Распечатаем:

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

with pl.Config(set_fmt_table_cell_list_len=100):
print(df)

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

shape: (2, 2)
┌─────────────────┬──────────────────┐
│ a               ┆ b                │
│ ---             ┆ ---              │
│ list[i64]       ┆ list[i64]        │
╞═════════════════╪══════════════════╡
│ [1, 2]          ┆ [4, 5, 6, 7, 8]  │
│ [5, 6, 7, 8, 9] ┆ [6, 7, 8, 9, 10] │
└─────────────────┴──────────────────┘
Я хочу извлечь уникальные значения, содержащиеся в таблице.
Я придумал:

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

# Concatenate the columns
c = df.get_column("a").to_list() + df.get_column("b").to_list()
# Flatten the columns and extract unique values
flat_list = {x for xs in c for x in xs}
Есть ли более быстрый способ?
Потому что я думаю, что функция to_list() работает медленно.

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

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

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

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

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

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