Развернуть/разнести строки полярностей из столбца, который представляет собой списокPython

Программы на Python
Ответить
Anonymous
 Развернуть/разнести строки полярностей из столбца, который представляет собой список

Сообщение Anonymous »

У меня есть следующий код

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

import polars as pl
import datetime as dt
from dateutil.relativedelta import relativedelta

def get_3_month_splits(product: str) -> list[str]:
front, start_dt, total_m = product.rsplit('.', 2)
start_dt = dt.datetime.strptime(start_dt, '%Y%m')
total_m  = int(total_m)
return [f'{front}.{(start_dt+relativedelta(months=m)).strftime("%Y%m")}.3' for m in range(0, total_m, 3)]

df = pl.DataFrame({
'product': ['CHECK.GB.202403.12', 'CHECK.DE.202506.6', 'CASH.US.202509.12'],
'qty':     [3, 6, -3],
'price':   [100, 102, 95],
})
print(df)

df2 = pl.DataFrame([{'product_split': split} | d
for d in df.iter_rows(named=True) for split in get_3_month_splits(d['product'])
])
print(df2)
По сути, я хочу расширить каждую строку, разделив продукт на более подробные столбцы Product_split, сохраняя при этом все остальные поля (например, qty, цена).
Вышеупомянутое позволяет достичь этой цели, но существует ли более удобный способ добиться этого с помощью with_columns?>

Подробнее здесь: https://stackoverflow.com/questions/788 ... -is-a-list
Ответить

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

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

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

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

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