需要排除9:30-16:00之外带有Time的行(包括9:30和16:00)。
Symbol Time Open High Low Close Volume LOD Sessions
0 AEHR 2021-08-11 04:33:00 6.52 6.52 6.52 6.52 200 NaN NaN
1 AEHR 2021-08-11 05:43:00 6.46 6.46 6.46 6.46 100 NaN NaN
2 AEHR 2021-08-11 07:53:00 6.34 6.34 6.34 6.34 300 NaN NaN
3 AEHR 2021-08-11 08:02:00 6.06 6.08 6.06 6.08 402 NaN NaN
4 AEHR 2021-08-11 08:05:00 6.15 6.15 6.15 6.15 100 NaN NaN
... ... ... ... ... ... ... ... ... ...输出:
Symbol Time Open High Low Close Volume LOD Sessions
0 AEHR 2019-09-23 09:31:00 1.42 1.42 1.42 1.42 200 NaN NaN
1 AEHR 2019-09-23 09:43:00 1.35 1.35 1.34 1.34 6062 NaN NaN
2 AEHR 2019-09-23 09:58:00 1.35 1.35 1.29 1.30 8665 NaN NaN
3 AEHR 2019-09-23 09:59:00 1.32 1.32 1.32 1.32 100 NaN NaN
4 AEHR 2019-09-23 10:00:00 1.35 1.35 1.35 1.35 400 NaN NaN
... ... ... ... ... ... ... ... ... ...解决方案可以工作,但非常慢吗:
df['time'] = pd.to_datetime(df['Time']).dt.time
#Drop non-market time data (i.e outside 9:30-4:00)
df['after_open'] = df['time'] >= datetime.time(9, 30)
df['before_close'] = df['time'] <= datetime.time(16, 00)
filt = (df['after_open'] == False)
df = df.drop(index=df[filt].index)
filt2 = (df['before_close'] == False)
df = df.drop(index=df[filt2].index)发布于 2021-09-12 09:57:55
试试这两条线:
df['Time'] = pd.to_datetime(df['Time'])
df = df.loc[df['Time'].ge("09:30:00") & df['Time'].le("16:00:00")]print(df)https://stackoverflow.com/questions/69150305
复制相似问题