2017-03-22 95 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) 
相关问题