首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Python pandas-datareader 0.8正确调用Alpha Vantage中的数据

如何使用Python pandas-datareader 0.8正确调用Alpha Vantage中的数据
EN

Stack Overflow用户
提问于 2019-10-19 12:15:37
回答 2查看 3.6K关注 0票数 3

巨蟒上的菜鸟。

我目前正在使用python pandas-datareader0.7进行一些股票分析。

随着pandas-datareader 0.8的更新。它应该能够从Alpha Vantage获取历史数据。

但我真的不知道如何使用api密钥(目前使用yahoo,不需要密钥)

documentation of pandas-datareader中,我尝试了相同的代码(使用我的API键,即在alpha vantage中注册的ABC123 ),将ALPHAVANTAGE_API_KEY替换为ABC123

代码语言:javascript
复制
    import os

    from datetime import datetime

    import pandas_datareader.data as web

    df = web.DataReader("AAPL", "av-daily", start=datetime(2017, 2, 9),end=datetime(2017, 5, 24),api_key=os.getenv('ABC123')) 

    print(df)

我希望它能输出历史数据。

但是它说"DataReader()得到了一个意外的关键字参数'api_key'“

如何正确使用api密钥才能抓取数据?

EN

回答 2

Stack Overflow用户

发布于 2020-09-07 16:38:22

嘿,你一定要用熊猫数据阅读器吗?下面是我写的一个函数,可以轻松地从Alpha Vantage中提取历史股票价格。您所要做的就是插入您的符号和令牌。有关提取Alpha Vantage数据的更多功能,请随时查看我的链接:https://github.com/hklchung/StockPricePredictor/blob/master/2020/alphavantage_funcs.py

代码语言:javascript
复制
def request_stock_price_hist(symbol, token, sample = False):
    if sample == False:
        q_string = 'https://www.alphavantage.co/query?function=TIME_SERIES_DAILY_ADJUSTED&symbol={}&outputsize=full&apikey={}'
    else:
        q_string = 'https://www.alphavantage.co/query?function=TIME_SERIES_DAILY_ADJUSTED&symbol={}&apikey={}'

    print("Retrieving stock price data from Alpha Vantage (This may take a while)...")
    r = requests.get(q_string.format(symbol, token))
    print("Data has been successfully downloaded...")
    date = []
    colnames = list(range(0, 7))
    df = pd.DataFrame(columns = colnames)
    print("Sorting the retrieved data into a dataframe...")
    for i in tqdm(r.json()['Time Series (Daily)'].keys()):
        date.append(i)
        row = pd.DataFrame.from_dict(r.json()['Time Series (Daily)'][i], orient='index').reset_index().T[1:]
        df = pd.concat([df, row], ignore_index=True)
    df.columns = ["open", "high", "low", "close", "adjusted close", "volume", "dividend amount", "split cf"]
    df['date'] = date
    return df

使用上述函数的方法如下所示:

代码语言:javascript
复制
df = request_stock_price_hist('IBM', 'REPLACE_YOUR_TOKEN')
df.to_csv('output.csv')
票数 3
EN

Stack Overflow用户

发布于 2019-10-21 22:25:58

代码os.getenv('ALPHAVANTAGE_API_KEY')告诉计算机获取名为'ALPHA_VANTAGE_API_KEY‘的环境变量

短期的修复方法是替换代码:

来自:api_key=os.getenv('ABC123')

收件人:api_key='ABC123'

它们默认使用环境变量的原因是,不将密钥直接存储在代码中会更安全。下面是关于更多信息的link,但设置它的最简单方法是运行:

代码语言:javascript
复制
cd 
echo "export ALPHAVANTAGE_API_KEY=\"ABC123\"" >> .bash_profile

当然,将ABC123替换为您的实际密钥。然后重新启动shell/kernal。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58460468

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档