我有以下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
首先搜索列中每个元素的日期部分,但是我找不到解决方案。
答案 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