在 pandas 的给定范围内生成随机日期 [英] Generating random dates within a given range in pandas
本文介绍了在 pandas 的给定范围内生成随机日期的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
这是一个自我回答的帖子.一个常见的问题是在给定的开始日期和结束日期之间随机生成日期.
This is a self-answered post. A common problem is to randomly generate dates between a given start and end date.
有两种情况需要考虑:
- 带有时间分量的随机日期,以及
- 没有时间的随机日期
例如,给定一些开始日期 2015-01-01
和结束日期 2018-01-01
,我如何使用熊猫?
For example, given some start date 2015-01-01
and an end date 2018-01-01
, how can I sample N random dates between this range using pandas?
推荐答案
我们可以利用 datetime64
只是一个更名 int64
因此我们可以进行视图转换:
We can speed up @akilat90's approach about twofold (in @coldspeed's benchmark) by using the fact that datetime64
is just a rebranded int64
hence we can view-cast:
def pp(start, end, n):
start_u = start.value//10**9
end_u = end.value//10**9
return pd.DatetimeIndex((10**9*np.random.randint(start_u, end_u, n, dtype=np.int64)).view('M8[ns]'))
这篇关于在 pandas 的给定范围内生成随机日期的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文