与大熊猫不断变化的观念作斗争。有许多好的建议,包括在这个论坛,但我不幸地未能将这些应用到我的方案。在
现在我在时间序列上使用传统的循环,但是呃,它花了8个小时来迭代150000行,这是所有股票代码大约3天的数据。有2个月的数据要处理,可能在我休假回来后还没完成,更不用说停电的风险了,在那之后我不得不重新开始这一次我没有休假等待。在
我有以下15分钟的股价时间序列(datetime(时间戳)和ticker的分层索引,唯一原始列是closePrice):
closePrice
datetime ticker
2014-02-04 09:15:00 AAPL xxx
EQIX xxx
FB xxx
GOOG xxx
MSFT xxx
2014-02-04 09:30:00 AAPL xxx
EQIX xxx
FB xxx
GOOG xxx
MSFT xxx
2014-02-04 09:45:00 AAPL xxx
EQIX xxx
FB xxx
GOOG xxx
MSFT xxx
我需要添加两列:
任何帮助我都会感激的。在
谢谢。在
编辑:
多亏了Jeff的提示,在交换和排序ix级别之后,我能够使用rolling_mean()正确地获取12sma,并设法在同一时间戳插入从12sma复制的第一个12ema值:
^{pr2}$我知道熊猫pandas.stats.时刻.ewma,但我更喜欢使用我从一本书中得到的公式,它需要“当前”的收盘价和上一行的12ema。在
所以,我试着从2月5日15:45以后填写12ema专栏。我尝试使用函数apply(),但是shift给出了一个错误:
def f12ema(x):
K = 2 / (12 + 1)
return x['price_nom'] * K + x['12ema'].shift(-1) * (1-K)
df1.apply(f12ema, axis=1)
AttributeError: ("'numpy.float64' object has no attribute 'shift'", u'occurred at index 2014-02-05 11:45:00')
另一个可能出现在我脑海里的可能性是滚动的,但我不知道。在
创建包含所需时间的日期范围
创建一个类似于你的框架(2000个股票代码x日期)
^{pr2}$重新排序的水平,使其股票指数x日期,排序它!!!!在
按股票行情分组。返回滚动平均值和ewma应用程序的每个股票代码的数据帧。请注意,有许多选项可用于控制这一点,例如,窗口化,您可以使其不环绕几天,等等
相当不错的表现,因为它基本上是循环的股票。在
相关问题 更多 >
编程相关推荐