Добавление столбца метки в фрейм данных - PullRequest
0 голосов
/ 12 октября 2018

У меня есть фрейм данных, в котором я получаю данные о запасах (OHLC) и дату в качестве индекса.Однако имя тикера там не отображается.Итак, данные выглядят примерно так:

                open      high       low     close     volume
date                                                         
2013-10-11   63.7003   64.5963   63.4609   64.4619   66934938
2013-10-14   64.0718   65.0855   64.0090   64.8841   65474542
2013-10-15   65.0757   65.6637   64.8161   65.2294   80018603
2013-10-16   65.5054   65.7330   65.3014   65.5478   62775013
2013-10-17   65.3995   66.0273   65.3602   65.9907   63398335
2013-10-18   66.1856   66.6133   66.1490   66.5649   72635570

У меня есть список символов тикера, и я запускаю цикл for, чтобы получить то же самое, а затем использую concat / append, чтобы наконец получить данные.Тем не менее, я хочу добавить символы тикера здесь.Как мне это сделать ?

Ниже приведен окончательный результат:

                open      high       low     close     volume   ticker
date                                                         
2013-10-11   63.7003   64.5963   63.4609   64.4619   66934938   AAPL
2013-10-14   64.0718   65.0855   64.0090   64.8841   65474542   AAPL
2013-10-15   65.0757   65.6637   64.8161   65.2294   80018603   AAPL
2013-10-16   65.5054   65.7330   65.3014   65.5478   62775013   AAPL
2013-10-17   65.3995   66.0273   65.3602   65.9907   63398335   AAPL
.................
.................
.................
.................
2013-10-11  153.0422  154.3197  152.9154  154.2654  104967037   SPY
2013-10-14  153.3140  155.0083  153.1962  154.8815  111901876   SPY
2013-10-15  154.4919  155.0718  153.5496  153.7580  153958055   SPY
2013-10-16  154.6822  155.9869  154.6051  155.9053  161058684   SPY
2013-10-17  155.2711  157.0379  155.2439  156.9473  129004482   SPY

PS: я использую библиотеку iexfinance для получения исторических цен.

1 Ответ

0 голосов
/ 12 октября 2018

Я не знаком с библиотекой iexfinance.Но допустим, у вас есть волшебная функция get_data_from_ticker, которая, как следует из названия, получает данные с введенным тикером, возможно, как объект pd.DataFrame.

При наличии списка tickers ваш текущий процесс можетвыглядит так:

dfs = []
for ticker in tickers:
    data = get_data_from_ticker(ticker)
    dfs.append(data)
df = pd.concat(dfs)

Это не особенно полезно, если информация о тикере не сохраняется в вашем фрейме данных.Таким образом, вы можете использовать pd.DataFrame.assign для добавления серии соответственно:

dfs = []
for ticker in tickers:
    data = get_data_from_ticker(ticker)
    dfs.append(data.assign(ticker=ticker))
df = pd.concat(dfs)

Наконец, вы можете сделать это более эффективным, используя понимание списка:

dfs = [get_data_from_ticker(ticker).assign(ticker=ticker) for ticker in tickers]

df = pd.concat(dfs)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...