如何将极坐标中的持续时间转换为数字?

Guz*_*Guz 8 python datetime duration python-polars

是否有任何内置函数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")
)
Run Code Online (Sandbox Code Playgroud)

df

MrF*_*pes 4

访问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
]
Run Code Online (Sandbox Code Playgroud)

文档:API 参考、系列/时间序列