[英]Pandas date_range() for middle and end of month
我可以使用指定月末的日期范圍
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
來加入togetehr:
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)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.