Để sử dụng chip trong giải pháp dựa trên gấu trúc, tôi sử dụng:
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
Tôi thích nó, vì sự tốt đẹp pd.Timestamp
tính năng cho phép tôi ném các công cụ và định dạng khác nhau vào nó. Hãy xem xét một vài ví dụ sau đây ...
Chữ ký của bạn.
>>> 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)
Vị trí ngẫu nhiên.
>>> 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)
Định dạng khác nhau.
>>> random_date('2008-01-01 13:30', '2009-01-01 4:50')
Timestamp('2008-11-18 17:20:19', tz=None)
Vượt qua gấu trúc / đối tượng datetime trực tiếp.
>>> 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