下面是代码。每当我尝试运行它时,它都会说类型错误:字符串索引必须是整数,#not“str”
import datetime as dt
import matplotlib.pyplot as plt
import pandas as pd
import pandas_datareader as pdr
start = dt.datetime.now() - dt.timedelta(days = 365*3)
end = dt.datetime.now()
stocks = ['VOO', 'QQQ']
df = pdr.get_data_yahoo(stocks, start, end)
df.head()
我正在尝试从雅虎财经获取过去三年到今天的 VOO 和 QQQ 股价数据。我收到一个大错误代码,以字符串索引结尾必须是整数,而不是“str”
也许您可以使用
yfinance
代替 pandas_datareader
:
import datetime as dt
import matplotlib.pyplot as plt
import pandas as pd
import yfinance as yf
start = dt.datetime.now() - dt.timedelta(days = 365*3)
end = dt.datetime.now()
stocks = ['VOO', 'QQQ']
df = yf.download(stocks, start, end)
df.head()
输出:
>>> df
Adj Close Close High ... Low Open Volume
QQQ VOO QQQ VOO QQQ ... VOO QQQ VOO QQQ VOO
Date ...
2020-12-23 302.548248 322.488678 308.200012 337.809998 310.179993 ... 337.690002 309.809998 338.540009 21201300 3682200
2020-12-24 303.883270 323.777466 309.559998 339.160004 310.019989 ... 337.769989 308.470001 338.369995 16785000 1447500
2020-12-28 306.946106 326.593658 312.679993 342.109985 313.170013 ... 341.089996 312.250000 341.739990 22497700 2798800
2020-12-29 307.220886 325.906342 312.959991 341.390015 314.690002 ... 340.869995 314.049988 343.630005 25871900 2555500
2020-12-30 307.230774 326.345490 312.970001 341.850006 314.489990 ... 341.570007 314.160004 342.279999 18138100 2009100
... ... ... ... ... ... ... ... ... ... ... ...
2023-12-18 407.079987 433.749908 407.079987 435.540009 407.989990 ... 434.450012 404.929993 434.640015 46610000 4280500
2023-12-19 409.160004 436.389008 409.160004 438.190002 409.279999 ... 435.950012 407.540009 436.040009 35711900 4061500
2023-12-20 403.079987 430.089996 403.079987 430.089996 410.470001 ... 429.899994 408.350006 435.510010 54042400 5783200
2023-12-21 407.769989 434.279999 407.769989 434.279999 408.140015 ... 430.859985 407.059998 433.130005 45568900 4621600
2023-12-22 408.380005 435.290009 408.380005 435.290009 409.970001 ... 433.480011 409.000000 435.459991 34292400 4035200
[755 rows x 12 columns]