提取数据框列的日期部分,并将其转换为该月的最后一个工作日

时间:2020-06-08 15:35:38

标签: python pandas dataframe

我有以下df,其中Date个元素是string,后跟YYYY.MM

df =
             Date    Value
0  name   2019.06      1.0
1  string 2018.03      1.6
2  string 2017.12      1.0
3  string 2016.09      1.7
4  name   2018.09      6.0
...

我想将Date列转换为该月的最后一个工作日(星期一至星期五)。 所以我可以得到以下输出:

df =
             Date    Value
0      2019-06-28      1.0
1      2018-03-30      1.6
2      2017-12-29      1.0
3      2016-09-30      1.7
4      2018-09-28      6.0
...

我尝试re.search首先搜索列中每个元素的日期部分,但是我找不到解决方案。

1 个答案:

答案 0 :(得分:2)

拆分并添加月末:

d = pd.to_datetime(df['Date'].str.split().str[-1])
print(df.assign(Date=d + pd.offsets.BMonthEnd(1)))

        Date  Value
0 2019-06-28    1.0
1 2018-03-30    1.6
2 2017-12-29    1.0
3 2016-09-30    1.7
4 2018-09-28    6.0