我的数据集范围从1989年1月3日到现在。它看起来像这样。我有R列,它在某些点上有Dates,与DataFrame的Index相匹配。
Index R
1989-01-24 NaT
1989-01-25 NaT
1989-01-26 NaT
1989-01-27 NaT
1989-01-30 NaT
1989-01-31 NaT
1989-02-01 1989-02-01
1989-02-02 NaT
1989-02-03 NaT
我希望从R列中找到不是NaT的行,从它们中减去一个月,找到该月第一个工作日的值,并将其存储到DataFrame中的新列RI中。
最终数据框应如下所示:
Index R RI
1989-01-02 NaT 1989-01-02
----
1989-02-01 1989-02-01 NaT
1989-02-02 NaT NaT
1989-02-03 NaT NaT
有人能帮助我吗?我在DateTime处理方面非常弱。
答案 0 :(得分:1)
你特意询问了一个pandas数据帧,因此你应该研究pandas Business Date Range函数。
一个这样的解决方案是:
import pandas as pd
pd.bdate_range(start='2017-07-01',periods=1)[0]
# returns Timestamp('2017-07-03 00:00:00', freq='B')