在 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")
)
df ["time_diff"] .dt.days()/ 365
? - Björnpl.Duration
结果,最好的方法是什么。我猜在大多数情况下,使用/365的粗略估计已经足够了。因为你绝对正确,年份是有歧义的(如果你想要极高的精度)。 - Björn