loc 函数下一个值

loc Funktion next value

.loc 函数有点问题。 这是代码:

date = df.loc [df ['date'] == d] .index [0]

d 是特定日期(例如 21.11.2019)

问题是周末可能需要几天时间。在 date 列的数据框中,周末没有值。 (仅包含工作日的日历日)

如果 d 是周末,他第二天有什么办法吗?

我想要 index.get_locmethod = bfill

有人知道如何为 .loc 实现吗?

IIUC 您想要将格式日期移动到最近的星期一:dd.mm.yyyy 如果它们恰好在周末,或者保持原样,以防它们是工作日。最有效的方法是在将 d 传递给 pandas.loc[...] 之前修改它,而不是寻找最近的邻居。

我的意思是:

import datetime

d="22.12.2019"

dt=datetime.datetime.strptime(d, "%d.%m.%Y")
if(dt.weekday() in [5,6]):
    dt=dt+datetime.timedelta(days=7-dt.weekday())

d=dt.strftime("%d.%m.%Y")

输出:

23.12.2019

编辑

为了第一次约会,在 d 之后或当天,您的数据框中有条目,请尝试:

import datetime

df['date']=pd.to_datetime(df['date'], format='%d.%m.%Y')

dt=datetime.datetime.strptime(d, "%d.%m.%Y")

d=df.loc[df ['date'] >= d, 'date'].min()

dr.loc[df['date']==d]...
...