Как преобразовать серию в имя нового столбца данных, добавив цену истории для каждого имени столбца? - PullRequest
0 голосов
/ 05 октября 2019

Во-первых, я получаю имя криптовалюты через:

tickers=pd.DataFrame(tickers)
coin=tickers['symbol'].head(10)
coin

Затем я определяю функцию, которая может получить историческую цену для каждого имени монеты из кода выше:

def get_price(name):
    df=CmcScraper(name,"01-01-2019","05-10-2019")
    df=df.get_dataframe().set_index("Date")
    return df

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

Он дал мне IndexError: list index вне диапазона, если я попробовал следующий код:

df=pd.concat([get_price(key)["Close"].rename(key) for key in coin],axis=1)

enter image description here

1 Ответ

1 голос
/ 05 октября 2019

Используйте pd.concat :

pd.concat([get_price(key)[Close].rename(key) for key in coin],axis=1,join='outer')

, в этом случае индекс будет Время .


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

pd.concat([get_price(key)[Close].rename(key).reset_index() for key in coin],axis=1,join='outer')

, если вы не против потерять информацию о Date:

pd.concat([get_price(key)[Close].rename(key) for key in coin],ignore_index=True,axis=1,join='outer')
...