设置时间间隔为 1 分钟

Setting Time with interval of 1 minute

我有一个数据集,其中包含 2 只股票超过 3 个月的详细数据。我必须在第一列中创建日期,在下一列中创建时间(间隔为 1 分钟)3 个月。我附上了 1 个这样的数据集的快照。请帮我解决这个问题。

Data Format

-创建 3 个月范围的日期和时间的 numpy 数组,频率为分钟

date_rng = pd.date_range(start='1/1/2021', end='3/31/2021', freq='min')

-隔离日期

date = date_rng.date

-隔离次数

time = date_rng.time

-创建 pandas 包含 2 列(日期和时间)的数据框

pd.DataFrame({'date': date, 'time': time})

-然后简单地将新数据框与列轴上的现有数据框连接起来。

***** 删除周六和周日 *****

您可以通过创建一个包含周末日期名称的列来删除周末,然后获取不包括周六和周日的数据帧的一部分:

date_rng = pd.date_range(start='1/1/2021', end='3/31/2021', freq='min')
date = date_rng.date
time = date_rng.time
day = date_rng.day_name()
df = pd.DataFrame({'date': date, 'time': time, 'day': day})

使用以下代码删除星期六和星期日:

sat = df.day != 'Saturday'
sun = df.day != 'Sunday'
df = df[sat & sun]

至于节假日,您可以使用相同的方法,但您需要一份适用于您所在地区的节假日列表。

****** 交易时间 ******

marketOpen = datetime.strptime('9:15:00', "%H:%M:%S").time()
marketClose = datetime.strptime('15:59:00', "%H:%M:%S").time()

df = df[(df.time >= marketOpen) & (df.time <= marketClose)]

******* 排除特定日期 ****

holiday = datetime.strptime("03/30/2021", "%m/%d/%Y").date()
df = df[df.date != holiday]

Lastly, don't forget to reset your dataframe's index.