【发布时间】:2021-12-24 00:22:38
【问题描述】:
我在 df 中的 DATA 中有一个列,我需要从中创建一个新列来提取该月的最后一个工作日或该特定月份的该月的最后一天。
df = pd.DataFrame({
'DATA':['2021-10-06','2021-10-05','2021-10-04','2021-10-01','2021-09-30','2021-09-29 ','2021-09-28','2021-09-27 ']
})
print(df)
我通过这种方式在 BMonthEnd() 的帮助下做到了这一点。
df['DATA2'] = pd.to_datetime(df['DATA']) + BMonthEnd()
但是当我在给定月份的最后一个工作日到达时,它会跳到下个月。
可以使用一种方法来使用该月的最后一个日期。
例如使用 BMonthEnd()
DATA DATA2
2021-10-06 2021-10-29
2021-10-05 2021-10-29
2021-10-04 2021-10-29
2021-10-01 2021-10-29
2021-09-30 2021-10-29 ** Erro, Correct = 2021-09-30
2021-09-29 2021-09-30
2021-09-28 2021-09-30
2021-09-27 2021-09-30
有没有什么办法可以转转?可以用其他方式
【问题讨论】:
-
看起来像bug。
-
这在stackoverflow.com/questions/27218543/…987654321@的最后一个答案的评论中注明
-
df['DATA2'] = pd.to_datetime(df['DATA']) + BMonthEnd(0)