Ковариация каждого ключа в словареPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Ковариация каждого ключа в словаре

Сообщение Anonymous »

У меня есть список, представляющий собой набор тикеров. Для каждого тикера я получаю ежедневную доходность за шесть месяцев. Затем я хочу вычислить ковариацию между каждым тикером. У меня проблемы с np.cov, вот мой код для проверки COV:

Код: Выделить всё

newStockDict = {}
for i in newList_of_index:
a = Share(i)
dataB = a.get_historical(look_back_date, end_date)
stockData = pd.DataFrame(dataB)
stockData['Daily Return'] = ""
yList = []
for y in range(0,len(stockData)-1):
stockData['Daily Return'][y] = np.log(float(stockData['Adj_Close'][y])/float(stockData['Adj_Close'][y+1]))

yList = stockData['Daily Return'].values.tolist()
newStockDict[stockData['Symbol'][0]] = yList

g = (np.cov(pd.Series((newStockDict[newList_of_index[0]]))), pd.Series(((newStockDict[newList_of_index[1]]))))
return g
Моя ошибка:

Код: Выделить всё

Traceback (most recent call last):
File "", line 1, in 
File "C:\Users\Udaya\Anaconda\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py", line 580, in runfile
execfile(filename, namespace)
File "C:/Users/Udaya/Documents/Python Scripts/SR_YahooFinanceRead.py", line 150, in 
print CumReturnStdDev(stock_list)
File "C:/Users/Udaya/Documents/Python Scripts/SR_YahooFinanceRead.py", line 132, in CumReturnStdDev
g = (np.cov(pd.Series((newStockDict[newList_of_index[0]]))), pd.Series(((newStockDict[newList_of_index[1]]))))
File "C:\Users\Udaya\Anaconda\lib\site-packages\numpy\lib\function_base.py", line 1885, in cov
X -= X.mean(axis=1-axis, keepdims=True)
File "C:\Users\Udaya\Anaconda\lib\site-packages\numpy\core\_methods.py", line 66, in _mean
ret = umr_sum(arr, axis, dtype, out, keepdims)
TypeError: unsupported operand type(s) for +: 'numpy.float64' and 'str'
>>> TypeError: unsupported operand type(s) for +: 'numpy.float64' and 'str'
Я пробовал использовать pd.cov для кадра данных, затем np.cov. Ничего не работает. Здесь я фактически добавляю ежедневные доходы в список, а затем в словарь, прежде чем вручную вычислить ковариационную матрицу n на n. Но я не могу заставить np.cov работать.
Идея состоит в том, что я могу легко создать фрейм данных из N тикеров, где каждая строка представляет собой ежедневный доход. Но я не могу вычислить cov с указанным кадром данных, поэтому этот процесс df --> list --> dict.

Подробнее здесь: https://stackoverflow.com/questions/290 ... dictionary
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»