Почему мой pandas_datareader не может извлечь все данные? - PullRequest
0 голосов
/ 27 апреля 2020

Я пытаюсь найти 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')

1 Ответ

0 голосов
/ 27 апреля 2020

Попробуйте переместить:

main_df.to_csv('sti_joined.csv') из for l oop

...