Я пишу программу на python, которая просит пользователя выбрать 5 символов. После того, как пользователь выберет пять символов, программа предоставит различные выходные данные.
То, как программа работает в настоящее время, создает пять кадров данных с уникальным именем и затем объединяет их в один кадр, как показано ниже.
data1 = pdr.DataReader(symbol, 'iex', start, end)
data2 = pdr.DataReader(symbol, 'iex', start, end)
data3 = pdr.DataReader(symbol, 'iex', start, end)
data4 = pdr.DataReader(symbol, 'iex', start, end)
data5 = pdr.DataReader(symbol, 'iex', start, end)
Я хочу улучшить программу, чтобы пользователь мог выбрать любое количество акций, и программа создаст один кадр данных для панд. Я думаю, что это будет похоже на запрос на добавление в базе данных SQL. Для целей этого вопроса я держу список символов в статическом размере.
import pandas
import pandas_datareader as pdr
from datetime import datetime
start = datetime(2018, 5, 1)
end = datetime(2018, 5, 31)
symbol_list = ['IVV', 'EWH', 'INDY', 'EWG', 'ENZL']
for symbols in Symbol_List:
symbol = symbols
data = pdr.DataReader(symbol, 'iex', start, end)
добавить что-то здесь, чтобы добавить новые данные в основной кадр данных.
Приложению потребуется переписать имена столбцов, чтобы включить символы, добавить столбцы для новых данных и обеспечить выравнивание индекса данных.
Я думал что-то вроде:
data.rename(columns={'high': 'high' + symbol, 'low': 'low' + symbol}, inplace=True)
pd.merge(masterdata, data, on='index')