Я пытаюсь найти 30 имен тикеров, которые перечислены в CSV-файле, и использовать pandas_datareader, чтобы получить соответствующие данные о ценах. Однако DataReader возвращает только 10-15 данных тикеров и не очень согласован. (я не думаю, что это проблема с тикерами, перечисленными в CSV как таковой)
Кто-нибудь сталкивался с подобной проблемой?
Я новичок и не уверен, что приведенное ниже сообщение имеет какое-либо отношение к моей проблеме:
FutureWarning: pandas .util.testing устарела. Вместо этого используйте функции в API публикации c при pandas .testing.
import pandas_datareader.data as web
import pandas as pd
import datetime as dt
import csv
import matplotlib.pyplot as plt
from matplotlib import style
import numpy as np
style.use('ggplot')
end = dt.datetime.today()
start = dt.date(end.year - 10, 1, 1)
tickerCsv = open('STI constituents.csv', 'r')
reader = csv.reader(tickerCsv)
tickers = {rows[0] for rows in reader}
main_df = pd.DataFrame()
for ticker in tickers:
df = web.DataReader(ticker, 'yahoo', start, end)
df.rename(columns={'Adj Close': ticker}, inplace=True)
df.drop(['Open', 'High', 'Low', 'Close', 'Volume'], 1, inplace=True)
if main_df.empty:
main_df = df
else:
main_df = main_df.join(df, how='outer')
print(main_df)
main_df.to_csv('sti_joined.csv')