gpt4 book ai didi

python - Pandas date_range() 表示月中和月末

转载 作者:太空宇宙 更新时间:2023-11-03 21:06:01 28 4
gpt4 key购买 nike

我可以使用指定月份结束的日期范围

import pandas as pd
monthend_range = pd.date_range(datetime.date(2017,12,10), datetime.date(2018,2,2), freq='BM')

是否有一种直接的方法可以将月中纳入上述范围以形成月中月末指数?假设我们想要的逻辑是使用上面代码中的连续月末,并找到位于月末中间的工作日。如果那不是工作日,请尝试第二天和接下来的日子,直到我们找到工作日。

预期输出是

['2017-12-29', '2018-01-16', '2018-01-31']

这可能看起来有点不一致,因为 2017 年 12 月 15 日是该日期范围内的月中。但程序是获取月末,然后在月末之间进行插值。当然,除非有更好的方法来处理这个问题。

最佳答案

想法是为每个值创建工作日范围,首先省略并选择中间的值,最后使用 Index.union一起加入:

a = [] 
for x in monthend_range[1:]:
r = pd.date_range(x.to_period('m').to_timestamp(), x, freq='B')
a.append(r[len(r)//2])
print (a)
[Timestamp('2018-01-16 00:00:00', freq='B')]

out = monthend_range.union(a)
print (out)
DatetimeIndex(['2017-12-29', '2018-01-16', '2018-01-31'], dtype='datetime64[ns]', freq=None)

关于python - Pandas date_range() 表示月中和月末,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55392861/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com