Python-选择特定的时间范围

Python-选择特定的时间范围,python,pandas,time,financial,Python,Pandas,Time,Financial,Python新手,但我有一些数据是日内财务数据,可以追溯到2012年,所以它每天的时间相同(每天的交易时段相同),但日期不同。我希望能够从数据中选择特定的时间,检查相应的OHLC数据,然后对其进行分析 所以现在它是一个CSV文件,我正在做: import pandas as pd data = pd.DataFrame.read_csv('data.csv') date = data['date'] op = data['open'] high = data['high'] low = dat

Python新手,但我有一些数据是日内财务数据,可以追溯到2012年,所以它每天的时间相同(每天的交易时段相同),但日期不同。我希望能够从数据中选择特定的时间,检查相应的OHLC数据,然后对其进行分析

所以现在它是一个CSV文件,我正在做:

import pandas as pd
data = pd.DataFrame.read_csv('data.csv')

date = data['date']
op = data['open']
high = data['high']
low = data['low']
close = data['close']
volume = data['volume']
问题是,日期列的格式是“dd/mm/yyyy 00:00:00”,作为一个字符串或其他任何字符串,因此是否仍然可以在特定时间之间进行选择,例如在“09:00:00”和“10:00:00”之间?或者我必须把时间和日期分开,让它成为自己的专栏?如果是,怎么做


所以我相信pandas有一个
between\u time()
函数,但这似乎需要一个数据帧,所以我如何将其转换为数据帧,然后我应该能够使用between\u time函数在我想要的时间之间进行选择。另外,因为显然有几千天,所有的时间都有自己的“xx:xx:xx”到“xx:xx:xx”,我想从每天看同一个时间段,而不仅仅是从“xx:xx:xx”到“xx:xx:xx”的第一批数据,如果这有意义的话。谢谢

考虑数据帧
df

from pandas_datareader import data

df = data.get_data_yahoo('AAPL', start='2016-08-01', end='2016-08-03')
df = df.asfreq('H').ffill()

选项1
索引
转换为系列,然后
dt.hour.isin

slc = df.index.to_series().dt.hour.isin([9, 10])
df.loc[slc]
选项2
numpy
广播

slc = (df.index.hour[:, None] == [9, 10]).any(1)
df.loc[slc]


评论回复

然后使用
重采样
+
agg
+
np.ptp
(峰对峰)获取每天该时段内的范围


实际上,日期格式是yyyy-mm-dd。我认为这就是它不能正常工作的原因。我已经将parse_dates=True和index_col=0作为read_csv()的参数,但是当我尝试打印df.head()时,它给了我一个关键错误:“date”。我真正想要实现的是在我想要的时间段(07:00:00-08:00:00)内计算每天所有数据的范围(高-低)。有人能帮忙吗?谢谢我真正想要实现的是在我想要的时间段(07:00:00-08:00:00)内计算每天所有数据的范围(高-低)。有人能帮忙吗?谢谢谢谢是的,我知道很抱歉,我不知道如何编辑我的原始帖子,只是看到了编辑选项,doh!:(
df.loc[slc].resample('D').agg(np.ptp)