使用anda as.date_range()生成多个日期时间,每周两个日期 [英] Using pandas.date_range() to generate multiple datetimes, two dates per week

查看:18
本文介绍了使用anda as.date_range()生成多个日期时间,每周两个日期的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用pd.date_range(start_date, end_date, freq='W-MON')start_date=2017-01-01end_date=2017-12-31之间的每个星期一生成每周频率的日期时间,这意味着每月大约生成4个日期时间。如何改为每月生成8个日期时间,即每周生成2个日期时间,但在一周中的不同日期,例如周一和周六或周日以外的任何其他日子?

推荐答案

至少有两种方法可以实现这一点:

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)

这篇关于使用anda as.date_range()生成多个日期时间,每周两个日期的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆