繁体   English   中英

过滤熊猫数据框以限制在给定的日期范围内

[英]Filtering pandas dataframe to restrict within a given range of dates

我有一个看起来像这样的熊猫数据框

2684    A878    2015-01-01  False   M13
2685    A878    2015-01-01  False   M50
2686    A879    2015-01-01  False   M96
5735    A879    2015-01-02  False   M19
... ... ... ... ...
89487   A879    2015-01-30  False   M38
89488   A879    2015-01-30  False   M35
89489   A879    2015-01-30  False   M33
89490   A879    2015-01-30  True    M66
89491   A879    2015-01-30  False   M4

我想通过第二列的特定值(== A879)和日期的特定偏移量过滤数据框。 例如,如果我的第二列值是 A879 并且我想要的日期是 2015-01-15,那么我想要第二列有 A879 的所有行,并且在 2015-01-15 之前超过 2 但少于 5 天。 所以它应该看起来像。

89489   A879    2015-01-12  False   M33
89490   A879    2015-01-13  True    M66
89491   A879    2015-01-14  False   M4

有没有很好的方法来做到这一点?

怎么样

import datetime as dt

REFERENCE_DATE = dt.date(2015, 1, 15)

df["date"] = pd.to_datetime(df["date"])

df[
    df["date"].dt.date.between(
        REFERENCE_DATE - dt.timedelta(days=5), REFERENCE_DATE - dt.timedelta(days=2)
    )
    & df["code"].eq("A879")
]

?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM