繁体   English   中英

如何将日期列转换为该日期的最后一个工作日

[英]How can I convert Date Column to the last Business Day of that Date

我想将此日期列转换为该日期列所代表的月份的最后一个工作日。 有人有想法吗? 谢谢

import pandas as pd  

# assign data of lists.  
data = {'Name': ['2021-12-31', '2020-12-31', '2019-12-31', '2018-12-31', '2017-12-31']}  

# Create DataFrame  
df = pd.DataFrame(data)  
df = pd.date_range(df, freq='BM')

df

以下是我通常的做法:

import pandas as pd

data = {'Name': ['2021-12-31', '2020-12-31', '2019-12-31', '2018-12-31', '2017-12-31']}  

td = pd.Timedelta('1 day')
bd = pd.tseries.offsets.BusinessDay(n=-1)

data_EOM = {'NAME': [pd.Timestamp(ts) + td + bd for ts in data['Name']]}

td用于将月末日期转移到下个月。 bd用于 go 返回单个营业日期,因此是您想要的月份的最后一个营业日。 pd.Timestamp()用于将字符串日期转换为时间戳 object,上面的 timedelta 对象( tdbd )可以应用到该时间戳上。

最后,我使用列表推导式遍历原始日期列表来创建您要查找的 EOM 日期列表。 从这里,您可以按照自己的意愿创建 df。

希望这可以帮助!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM