gpt4 book ai didi

python - 如何在 python-polars 中选择特定日期范围之间的行?

转载 作者:行者123 更新时间:2023-12-05 02:38:25 25 4
gpt4 key购买 nike

如果使用 polars-python 构造 DataFrame,如下所示:

import polars as pl
from polars import col
from datetime import datetime

df = pl.DataFrame({
"dates": ["2016-07-02", "2016-08-10", "2016-08-31", "2016-09-10"],
"values": [1, 2, 3, 4]
})

如何选择某个日期范围之间的行,即 "2016-08-10""2016-08-31" 之间的行,以便期望的结果是:

┌────────────┬────────┐
│ dates ┆ values │
│ --- ┆ --- │
│ date ┆ i64 │
╞════════════╪════════╡
│ 2016-08-10 ┆ 2 │
├╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌┤
│ 2016-08-31 ┆ 3 │
└────────────┴────────┘

最佳答案

首先,您需要将 dates 中的字符串值转换为 datetimes,然后进行过滤:

# eager
(df.with_column(pl.col("dates").str.strptime(pl.Date))
.filter(col("dates").is_between(datetime(2016, 8, 9), datetime(2016, 9, 1)))
)

# lazy
(df.lazy()
.with_column(pl.col("dates").str.strptime(pl.Date))
.filter(col("dates").is_between(datetime(2016, 8, 9), datetime(2016, 9, 1)))
.collect()
)

两者都会产生所需的输出:

┌────────────┬────────┐
│ dates ┆ values │
│ --- ┆ --- │
│ date ┆ i64 │
╞════════════╪════════╡
│ 2016-08-10 ┆ 2 │
├╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌┤
│ 2016-08-31 ┆ 3 │
└────────────┴────────┘

关于python - 如何在 python-polars 中选择特定日期范围之间的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69591233/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com