簡體   English   中英

熊貓月中下旬的date_range()

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM