【问题标题】:Why cant my pandas_datareader pull all the data?为什么我的 pandas_datareader 不能提取所有数据?
【发布时间】: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


    【解决方案1】:

    尝试移动:

    main_df.to_csv('sti_joined.csv') 退出 for 循环

    【讨论】:

    • 谢谢 dexter,不幸的是,这不起作用 - 没有生成 CSV,虽然我也想知道为什么。
    • 调试outer join的输出
    猜你喜欢
    • 1970-01-01
    • 2018-11-21
    • 1970-01-01
    • 2023-03-18
    • 1970-01-01
    • 2021-08-06
    • 2018-05-13
    • 2021-10-25
    • 1970-01-01
    相关资源
    最近更新 更多