Есть ли какая-либо встроенная функция в polars
или лучший способ преобразовать продолжительность времени в числовое значение, определив временное разрешение (например, дни, часы, минуты)?
# Create a dataframe
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("from").str.strptime(pl.Date, "%Y-%m-%d").alias("from_date"),
pl.col("to").str.strptime(pl.Date, "%Y-%m-%d").alias("to_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")
)
Аксессуар dt
позволяет вам получать отдельные компоненты, это то, что вы ищете?
df["time_diff"].dt.days()
Series: 'time_diff' [i64]
[
3
3
3
]
df["time_diff"].dt.hours()
Series: 'time_diff' [i64]
[
72
72
72
]
df["time_diff"].dt.minutes()
Series: 'time_diff' [i64]
[
4320
4320
4320
]
документы: Справочник по API, серия/таймсерия