Как преобразовать продолжительность времени в числовые значения в полярах? ⇐ Python

Программы на Python
Anonymous
Как преобразовать продолжительность времени в числовые значения в полярах?

Сообщение Anonymous »

Есть ли какая-либо встроенная функция в полярах или лучший способ преобразовать продолжительность времени в числовое значение, указав разрешение времени (например, дни, часы, минуты)?
< pre class="lang-py Prettyprint-override">import polars as pl

df = pl.DataFrame({
"from": ["2023-01-01", "2023-01-02", "2023-01-03"],
"to": ["2023-01-04", "2023-01-05", "2023-01-06"],
})

Мой текущий подход:
# Convert to date and calculate the time difference
df = (
df.with_columns(
pl.col("to", "from").str.to_date().name.suffix("_date")
)
.with_columns((pl.col("to_date") - pl.col("from_date")).alias("time_diff"))
)

# Convert the time difference to int (in days)
df = df.with_columns(
((pl.col("time_diff") / (24 * 60 * 60 * 1000)).cast(pl.Int8)).alias("time_diff_int")
)

Выход:
shape: (3, 6)
┌────────────┬────────────┬────────────┬────────────┬──────────────┬───────────────┐
│ from ┆ to ┆ to_date ┆ from_date ┆ time_diff ┆ time_diff_int │
│ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- │
│ str ┆ str ┆ date ┆ date ┆ duration[ms] ┆ i8 │
╞════════════╪════════════╪════════════╪════════════╪══════════════╪═══════════════╡
│ 2023-01-01 ┆ 2023-01-04 ┆ 2023-01-04 ┆ 2023-01-01 ┆ 3d ┆ 3 │
│ 2023-01-02 ┆ 2023-01-05 ┆ 2023-01-05 ┆ 2023-01-02 ┆ 3d ┆ 3 │
│ 2023-01-03 ┆ 2023-01-06 ┆ 2023-01-06 ┆ 2023-01-03 ┆ 3d ┆ 3 │
└────────────┴────────────┴────────────┴────────────┴──────────────┴───────────────┘


Подробнее здесь: https://stackoverflow.com/questions/754 ... -in-polars

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