如何将日期列转换为该日期的最后一个工作日
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
用于将 End-of-month 日期移到下个月。
bd
用于返回单个营业日期,即您想要的月份的最后一个营业日。
pd.Timestamp()
用于将字符串日期转换为时间戳对象,上面的timedelta对象(td
和bd
)可以应用在上面。
最后,我使用列表推导式遍历原始日期列表来创建您要查找的 EOM 日期列表。在这里,您可以按照自己的意愿创建自己的 df。
希望对您有所帮助!
我想将此日期列转换为该日期列所代表的月份的最后一个工作日。有人有想法吗?谢谢
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
用于将 End-of-month 日期移到下个月。
bd
用于返回单个营业日期,即您想要的月份的最后一个营业日。
pd.Timestamp()
用于将字符串日期转换为时间戳对象,上面的timedelta对象(td
和bd
)可以应用在上面。
最后,我使用列表推导式遍历原始日期列表来创建您要查找的 EOM 日期列表。在这里,您可以按照自己的意愿创建自己的 df。
希望对您有所帮助!