我正在学习如何过滤熊猫数据帧上的日期,需要一些帮助与以下请。这是我的原始数据帧(from this data):
data
Out[120]:
Open High Low Last Volume NumberOfTrades BidVolume AskVolume
Timestamp
2014-03-04 09:30:00 1783.50 1784.50 1783.50 1784.50 171 17 29 142
2014-03-04 09:31:00 1784.75 1785.75 1784.50 1785.25 28 21 10 18
2014-03-04 09:32:00 1785.00 1786.50 1785.00 1786.50 81 19 4 77
2014-03-04 09:33:00 1786.00 1786.00 1785.25 1785.25 41 14 8 33
2014-03-04 09:34:00 1785.00 1785.25 1784.75 1785.25 11 8 2 9
2014-03-04 09:35:00 1785.50 1786.75 1785.50 1785.75 49 27 13 36
2014-03-04 09:36:00 1786.00 1786.00 1785.25 1785.75 12 8 3 9
2014-03-04 09:37:00 1786.00 1786.25 1785.25 1785.25 15 8 10 5
2014-03-04 09:38:00 1785.50 1785.50 1784.75 1785.25 24 17 17 7
data.dtypes
Out[118]:
Open float64
High float64
Low float64
Last float64
Volume int64
NumberOfTrades int64
BidVolume int64
AskVolume int64
dtype: object
然后我重新取样到5分钟的部分:
five_min = data.resample('5T').sum()
寻找高流量的日子:
max_volume = five_min.Volume.at_time('9:30') > 65000
然后,我尝试按如下方式获得高容量天数:
five_min.Volume = max_volume[max_volume == True]
for_high_vol = five_min.Volume.dropna()
for_high_vol
Timestamp
2014-03-21 09:30:00 True
2014-04-11 09:30:00 True
2014-04-16 09:30:00 True
2014-04-17 09:30:00 True
2014-07-18 09:30:00 True
2014-07-31 09:30:00 True
2014-09-19 09:30:00 True
2014-10-07 09:30:00 True
2014-10-10 09:30:00 True
2014-10-14 09:30:00 True
2014-10-15 09:30:00 True
2014-10-16 09:30:00 True
2014-10-17 09:30:00 True
我想使用“for\u high\u vol”中的索引来选择原始“data”数据框中的所有日期。你知道吗
我相信有更好的方法是这样做,所以有人能告诉我最简单的方法来做到这一点?你知道吗
IIUC,你可以这样做:
要设置索引,请执行以下操作:
PS
Timestamp
是DF中的一个正则列,而不是索引说明:
每隔5分钟对DF重新采样/分组,计算每个组的
Volume
之和,并将该和分配给组中的所有行。例如,在下面的例子中,332
-是第一个5分钟组中Volume
的和过滤时间-条件不言而喻:
最后将所有条件(过滤器)组合在一起—将其传递给
.ix[]
索引器并将索引设置回Timestamp
:输出:
相关问题 更多 >
编程相关推荐