Объедините фрейм данных Polars со смещенной версией в один df, используя структуру ⇐ Python

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

Сообщение Anonymous »

У меня есть фрейм данных с историей цен на акции компаний по дате.

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

df = pl.from_repr("""
┌──────┬─────┬───────┬──────────┐
│ date ┆ ibm ┆ apple ┆ coinbase │
│ ---  ┆ --- ┆ ---   ┆ ---      │
│ i64  ┆ i64 ┆ i64   ┆ i64      │
╞══════╪═════╪═══════╪══════════╡
│ 1    ┆ 50  ┆ 100   ┆ 40       │
│ 2    ┆ 48  ┆ 200   ┆ 60       │
│ 3    ┆ 49  ┆ 400   ┆ 10       │
│ 4    ┆ 27  ┆ 800   ┆ 300      │
│ 5    ┆ 11  ┆ 1600  ┆ 7000     │
└──────┴─────┴───────┴──────────┘
""")
И еще один, где цены смещены на 2 единицы даты.

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

df_2 = df.shift(-2)

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

shape: (5, 4)
┌──────┬──────┬───────┬──────────┐
│ date ┆ ibm  ┆ apple ┆ coinbase │
│ ---  ┆ ---  ┆ ---   ┆ ---      │
│ i64  ┆ i64  ┆ i64   ┆ i64      │
╞══════╪══════╪═══════╪══════════╡
│ 3    ┆ 49   ┆ 400   ┆ 10       │
│ 4    ┆ 27   ┆ 800   ┆ 300      │
│ 5    ┆ 11   ┆ 1600  ┆ 7000     │
│ null ┆ null ┆ null  ┆ null     │
│ null ┆ null ┆ null  ┆ null     │
└──────┴──────┴───────┴──────────┘
Я хочу объединить две серии IBM в структуры в одном столбце IBM с полем для цены @ даты и цены сдвига (-2). Аналогично для Apple и т. д.
Как это сделать? Будет ли это эффективно?
Не знаю, с чего начать, так как кажется, что результирующий столбец IBM будет состоять не из двух серий, а из одной серии пар (исходных, смещенных) цен

Подробнее здесь: https://stackoverflow.com/questions/767 ... ing-struct

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