Để 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