设置时间间隔为 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.
我有一个数据集,其中包含 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.