首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在python-polars中选择某个日期范围内的行?

如何在python-polars中选择某个日期范围内的行?
EN

Stack Overflow用户
提问于 2021-10-15 22:31:23
回答 1查看 125关注 0票数 1

如果使用polars- DataFrame构建如下所示的python:

代码语言:javascript
复制
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"之间的行,以便期望的结果是:

代码语言:javascript
复制
┌────────────┬────────┐
│ dates      ┆ values │
│ ---        ┆ ---    │
│ date       ┆ i64    │
╞════════════╪════════╡
│ 2016-08-10 ┆ 2      │
├╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌┤
│ 2016-08-31 ┆ 3      │
└────────────┴────────┘
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-10-15 22:35:47

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

代码语言:javascript
复制
# 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()
)

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

代码语言:javascript
复制
┌────────────┬────────┐
│ dates      ┆ values │
│ ---        ┆ ---    │
│ date       ┆ i64    │
╞════════════╪════════╡
│ 2016-08-10 ┆ 2      │
├╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌┤
│ 2016-08-31 ┆ 3      │
└────────────┴────────┘
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69591233

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档