【发布时间】:2020-04-27 14:26:18
【问题描述】:
我正在尝试查找 CSV 文件中列出的 30 个股票代码名称,并使用 pandas_datareader 提取它们各自的价格数据。但是,DataReader 只返回 10-15 个代码的数据,并且不是很一致。 (我认为 CSV 中列出的代码本身没有问题)
有人遇到过类似的问题吗?
我是新手,不确定以下消息是否与我的问题有关:
FutureWarning:pandas.util.testing 已弃用。请改用 pandas.testing 中公共 API 中的函数。
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')
【问题讨论】:
标签: python pandas pandas-datareader