python - 在 panda DataFrame 列中获取上个月的第一个工作日

标签 python pandas datetime

我的数据集范围从 1989-1-03 至今。它看起来像这样。我有 R 列,其中某些点的日期与数据帧的索引相匹配。

 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

有人可以帮助我吗?我在日期时间处理方面真的很弱。

最佳答案

您特别询问了 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')

关于python - 在 panda DataFrame 列中获取上个月的第一个工作日,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44972484/

相关文章:

python - 在 Pandas 中使用因式分解来覆盖缺失情况时设置先验级别

python - 如何在 Matplotlib 中选择具有日期时间坐标的点?

python - 图表上的烦人日期

.net - EntityFunctions.DiffHours 方法如何工作?

python - 用同一数据帧中的值填充 NaN 信息

python - 如何根据行/列名称将一个数据框的列附加为另一个数据框的行?

python - 使用其他版本的 libc 的 LD_preload 在 pwntools 中不起作用

Python:获取 '3 years ago today' 的日期时间

python - 如何修改算术运算符 (+,-,x)

python - 现实生活过程的异步、多线程模拟