एक पांडा-आधारित समाधान में चिप लगाने के लिए मैं उपयोग करता हूं:
import pandas as pd
import numpy as np
def random_date(start, end, position=None):
start, end = pd.Timestamp(start), pd.Timestamp(end)
delta = (end - start).total_seconds()
if position is None:
offset = np.random.uniform(0., delta)
else:
offset = position * delta
offset = pd.offsets.Second(offset)
t = start + offset
return t
मुझे यह पसंद है, क्योंकि अच्छा है pd.Timestamp
विशेषताओं के है जो मुझे इस पर अलग-अलग सामान और प्रारूप फेंकने की अनुमति देते हैं। निम्नलिखित कुछ उदाहरणों पर विचार करें ...
आपके हस्ताक्षर।
>>> random_date(start="1/1/2008 1:30 PM", end="1/1/2009 4:50 AM", position=0.34)
Timestamp('2008-05-04 21:06:48', tz=None)
यादृच्छिक स्थिति।
>>> random_date(start="1/1/2008 1:30 PM", end="1/1/2009 4:50 AM")
Timestamp('2008-10-21 05:30:10', tz=None)
अलग प्रारूप।
>>> random_date('2008-01-01 13:30', '2009-01-01 4:50')
Timestamp('2008-11-18 17:20:19', tz=None)
पंडों / डेटाइम वस्तुओं को सीधे पास करना।
>>> random_date(pd.datetime.now(), pd.datetime.now() + pd.offsets.Hour(3))
Timestamp('2014-03-06 14:51:16.035965', tz=None)
ptime = stime + prop * (etime - stime) + 0.5