Как создать новый столбец, указывающий, имеют ли два столбца списка один и тот же первый элемент в Polars?Python

Программы на Python
Ответить
Anonymous
 Как создать новый столбец, указывающий, имеют ли два столбца списка один и тот же первый элемент в Polars?

Сообщение Anonymous »

У меня есть DataFrame Polars, состоящий из двух серий: «foo» и «bar», которые содержат списки целых чисел. Я хочу создать новый столбец, которому присваивается значение 1, если начальное слово (первый элемент) серии «foo» равно начальному слову серии «bar», и 0 в противном случае. Я использую Polars, который кажется немного более сложным, чем pandas.
Вот пример DataFrame, с которым я работаю:

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

import polars as pl

pl.Config(fmt_table_cell_list_len=6, fmt_str_lengths=100)

df = pl.DataFrame({
"foo": [[1, 3, 3, 3], [3, 5, 3, 4], [4, 7, 5, 3]],
"bar": [[3, 345, 3, 4], [3, 4, 334, 2], [4, 52, 4, 2]]
})
Форма DataFrame:

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

shape: (3, 2)
┌──────────────┬────────────────┐
│ foo          ┆ bar            │
│ ---          ┆ ---            │
│ list[i64]    ┆ list[i64]      │
╞══════════════╪════════════════╡
│ [1, 3, 3, 3] ┆ [3, 345, 3, 4] │
│ [3, 5, 3, 4] ┆ [3, 4, 334, 2] │
│ [4, 7, 5, 3] ┆ [4, 52, 4, 2]  │
└──────────────┴────────────────┘
Я хотел бы создать новый столбец с именем «общее начало», который отражает, соответствует ли начальное слово «foo» начальному слову «bar». Ожидаемый результат для столбца «общее начало» в этом случае будет: [0, 1, 1].

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

shape: (3, 3)
┌──────────────┬────────────────┬──────────────┐
│ foo          ┆ bar            ┆ common_start │
│ ---          ┆ ---            ┆ ---          │
│ list[i64]    ┆ list[i64]      ┆ i64          │
╞══════════════╪════════════════╪══════════════╡
│ [1, 3, 3, 3] ┆ [3, 345, 3, 4] ┆ 0            │
│ [3, 5, 3, 4] ┆ [3, 4, 334, 2] ┆ 1            │
│ [4, 7, 5, 3] ┆ [4, 52, 4, 2]  ┆ 1            │
└──────────────┴────────────────┴──────────────┘
Как мне этого добиться? Мы будем очень признательны за любые рекомендации или примеры использования Polars.

Подробнее здесь: https://stackoverflow.com/questions/765 ... e-first-el
Ответить

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

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

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

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

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