首页 > 解决方案 > 使用 pandas datetimeindex 的数据系列中的差距

问题描述

我有一个带有以下 DatetimeIndex 的 pandas 数据框:

DatetimeIndex(['2019-06-13 15:30:00', '2019-06-13 15:31:00',
               '2019-06-13 15:32:00', '2019-06-13 15:33:00',
               ....
               '2020-03-06 21:56:00', '2020-03-06 21:57:00',
               '2020-03-06 21:58:00', '2020-03-06 21:59:00'],
              dtype='datetime64[ns]', name='Date', length=72622, freq=None)

“时间”从 15:30 开始,到 21:59 结束,间隔为 1 分钟。
我现在正在绘制一个带有数字的列,但问题是 22:00 - 15:29 之间的时间间隔

在此处输入图像描述

有什么建议可以使它成为一个连续的数据点系列吗?

更新:
这是我正在使用的代码:

import pandas as pd
import numpy as np
sp = pd.read_csv('ES_M1_askbid_1yr.csv')
sp.columns = sp.columns.str.strip()
sp.rename(columns = {'Close' : 'Delta'}, inplace=True)
sp['Date'] = pd.to_datetime(sp['Date'] + ' ' + sp['Time'])
sp.set_index('Date', inplace=True)
sp.drop(['Time','K', 'L', 'M', 'N', 'Bid Volume', 'Ask Volume','Open.1'], axis=1, inplace=True)
rangeHLsub = (sp['Low'] - sp['High'])/0.25
rangeOCsub = (sp['Open'] - sp['Last'])/0.25
divBAR_DELTAraw = round((rangeOCsub / sp['Delta'])*100)
sp['div_Bar_Delta_raw'] = divBAR_DELTAraw
sp['div_Bar_Delta'] = sp['div_Bar_Delta_raw'].replace([np.inf, -np.inf], np.nan)
sp.drop(['div_Bar_Delta_raw'], axis=1, inplace=True)
iplot(sp['div_Bar_Delta'].iplot(asFigure=True,
                              kind='scatter',xTitle='Dates',yTitle='div bar delta',title='div bar delta'))

标签: pandaspython-datetimedatetimeindex

解决方案


您可以尝试这样的方法来删除没有值的行,并且只有时间在 15:30 到 21:59 之间的行 -

import time
df[(df['datetime'].dt.time >= time(15,30)) & (df['datetime'].dt.time <= time(21, 59))]

推荐阅读