筛选数据帧以限制在给定的日期范围内

2024-09-27 00:13:26 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

有什么好办法吗


Tags: 数据falsetrue偏移量m4m33m50m96
1条回答
网友
1楼 · 发布于 2024-09-27 00:13:26

怎么样

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")
]

什么

相关问题 更多 >

    热门问题