2017-03-22 137 views
3

兩個日期我使用pd.date_range(start_date, end_date, freq='W-MON')生成每週頻率日期時間每週一start_date=2017-01-01end_date=2017-12-31之間,這意味着約4日期時間是每月產生。如何每月生成8個日期時間,即每週生成2個日期時間,但一週中的不同日期,例如週一和週六或週日之外的其他日期?使用pandas.date_range()來生成多個日期時間,每星期

+0

@NickilMaveli:我已經更新的問題。 – DougKruger

+1

我想你可以用不同的頻率值生成另一組日期,比如說''W-TUE''就像你之前做的一樣,並將它附加到第一個日期。你甚至可以在之後進行排序。 –

+0

@NickilMaveli請將其作爲答案 – smci

回答

3

有實現這一目標的,至少有兩種方法:

1)你或許可以選擇對應於不同的星期幾的每週頻率,並把他們的union這很好地排序指標和附加它們。

start_date = "2017-01-01" 
end_date = "2017-12-31" 

d1 = pd.date_range(start_date, end_date, freq="W-MON") 
d2 = pd.date_range(start_date, end_date, freq="W-TUE") 

d1.union(d2) 

2)更簡單的方法是創建一個偏移量相當於一個額外的Day。隨後進行相同的union操作。

from pandas.tseries.offsets import Day 

d1.union(d1 + Day(1)) 

兩種方法產生:

DatetimeIndex(['2017-01-02', '2017-01-03', '2017-01-09', '2017-01-10', 
       '2017-01-16', '2017-01-17', '2017-01-23', '2017-01-24', 
       '2017-01-30', '2017-01-31', 
       ... 
       '2017-11-27', '2017-11-28', '2017-12-04', '2017-12-05', 
       '2017-12-11', '2017-12-12', '2017-12-18', '2017-12-19', 
       '2017-12-25', '2017-12-26'], 
       dtype='datetime64[ns]', length=104, freq=None) 
相關問題