Умножить временные ряды на фрейм данных - PullRequest
0 голосов
/ 04 января 2019

Мне нужно создать фрейм данных из нескольких временных рядов цены акций.Источник временного ряда - quandl.Мой цикл создает фрейм данных, но неправильно добавляет временные ряды.

import quandl
import datetime
tickers=['MMM','AOS','ABT']

for stock in range(len(tickers)):
    series = (quandl.get("WIKI/" + tickers[stock], start_date='2014-12-31', end_date='2018-12-31')['Adj. Close'])
    data = pd.DataFrame({'Date':series.index, tickers[stock]:series.values})
    portfolio = portfolio.append(data)

1 Ответ

0 голосов
/ 05 января 2019

Хорошо, пытаясь помочь здесь, я думаю, вы хотите данные для всех 3 тикеров в отдельных столбцах в одном кадре данных. Вы можете сделать это следующим образом:

import quandl

Сначала вы создаете пустой портфель данных, в который вы можете объединить загруженные данные. Этот фрейм данных получает индекс со всеми возможными датами:

datetime_index = pd.DatetimeIndex(start='2014-12-31', end='2018-12-31', freq='D')
portfolio = pd.DataFrame(index=datetime_index)

Затем вы загружаете данные тикера и объединяете их с фреймом данных портфеля следующим образом:

tickers=['MMM','AOS','ABT']
for ticker in tickers:
    ticker_data = (
        quandl.get('WIKI/' + ticker, 
                   start_date='2014-12-31', 
                   end_date='2018-12-31')['Adj. Close']
              .rename(ticker)
    )
    portfolio = pd.concat([portfolio, ticker_data], axis=1)

Теперь проверьте результат:

portfolio.head(3)
            MMM     AOS     ABT
2014-12-31  153.100 27.278  42.024
2015-01-01  nan     nan     nan
2015-01-02  152.857 27.084  41.912

Пожалуйста, дайте мне знать, если это то, что вам нужно, и подтвердите / примите результат, если он правильный. В будущем: когда вы будете задавать вопросы, всегда добавляйте пример того, что вы хотите, чтобы конечный результат был.

...