[英]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.