在熊猫DataFrame专栏中获得上个月的第一个工作日

时间:2017-07-07 13:48:51

标签: python pandas datetime

我的数据集范围从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处理方面非常弱。

1 个答案:

答案 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')