2013-10-13 42 views
0

我已经搜索了一下stackoverflow,并且我没有找到解决方案,这可能是由于数据框对我而言还不是很清楚。我正在做一个计算布林带的练习。我已经完成了一个单一的股票,但我想让它适用于任何数量的项目。目前,我有这样的:为数据集集执行lamba函数

def movingAverage(symbols, dt_start, dt_end, lookback): 
    // Symbols = ['AAPL', 'GOOG'] 

    ldt_timestamps = du.getNYSEdays(dt_start, dt_end, DT_TIME_OF_DAY) 

    c_dataobj = da.DataAccess('Yahoo') 
    ls_keys = ['close'] 

    ldf_data = c_dataobj.get_data(ldt_timestamps, symbols, ls_keys) 
    d_data = dict(zip(ls_keys, ldf_data)) 

    closeData = d_data['close'] 

    d_data['ma'] = d_data['close'].copy() // calculates the Moving Average for ALL stocks 
    d_data['std'] = d_data['close'].copy() 
    d_data['bollinger'] = d_data['close'].copy() 

    d_data['ma'] = pandas.rolling_mean(d_data['close'], lookback, min_periods=lookback) 
    d_data['std'] = pandas.rolling_std(d_data['close'], lookback, min_periods=lookback) 

我计算整个帧的ma(均线)和std(滚动标准偏差),而不是通过符号做一个循环,而自豪所以我想要做的知道的是(伪代码):

for all the symbols 
    fill in d_data['bollinger'] with 
     (d_data['close'] - d_data['ma'])/d_data['std'] 

我只是觉得我能做到这一点,而不做一个for循环到每个符号由符号索引索引closedata计算这一点。

请让我知道,如果问题可以改善。

预先感谢您。

d_data['bollinger'] = (d_data['close'] - d_data['ma'])/d_data['std'] 

谢谢大家,看了题目,下次我会需要更多的时间来研究:

回答

0

,因为我已经在伪代码描述它是那样简单。