Python 3.8 pandas -datareader ошибка импорта - PullRequest
0 голосов
/ 20 апреля 2020

Добрый день, при тестировании следующего кода на python 3.8:

import numpy as np

import pandas as pd

import pandas_datareader.data as web

import matplotlib.pyplot as plt 

import datetime

import scipy.optimize as sco


stocks = ['AAPL', 'WMT', 'TSLA', 'GE', 'AMZN', 'DB']

start_date = '01/01/2017'

end_date = '01/01/2020'

#downloading datas from Yahoo! Finance
def download_data(stocks):

    data = web.DataReader(stocks, data_source='yahoo', start=start_date, end=end_date) ['Adj Close']
    return data

def show_data(data):

    data.plot(figsize=(10,5))
    plt.show()

я получил следующую ошибку:

Traceback (последний вызов был последним): File " c: / Users / marco / AppData / Local / Programs / Python / Python38-32 / Portfolio theory.py ", строка 6, в импорте pandas_datareader.data в виде веб-файла" C: \ Users \ marco \ AppData \ Local \ Programs \ Python \ Python38-32 \ lib \ site-packages \ pandas_datareader__init __. Py ", строка 2, в
из импорта .data (Файл" C: \ Users \ marco \ AppData \ Local \ Programs \ Python \ Python38-32 \ lib \ site-packages \ pandas_datareader \ data.py ", строка 11, в
из pandas_datareader.av.forex import AVForexReader File" C: \ Users \ marco \ AppData \ Local \ Programs \ Python \ Python38-32 \ lib \ site-packages \ pandas_datareader \ av__init __. Py ", строка 5, в
из файла pandas_datareader._utils import RemoteDataError File" C: \ Users \ marco \ AppData \ Local \ Programs \ Python \ Python38-32 \ lib \ site-packages \ pandas_datareader_utils.py ", строка 6, в
из pandas_dataread er.compat import is_number ImportError: невозможно импортировать имя «is_number» из «pandas_datareader.compat» (C: \ Users \ marco \ AppData \ Local \ Programs \ Python \ Python38-32 \ lib \ site-packages \ pandas_datareader \ compat__init__ .py)

pandas и pandas - доступны версии последних версий.

Заранее благодарим за помощь

1 Ответ

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

Вы можете попробовать пакет под названием yahooquery . Вот как будет выглядеть ваш код:

from yahooquery import Ticker
stocks = ['AAPL', 'WMT', 'TSLA', 'GE', 'AMZN', 'DB']

start_date = '2017-01-01'
end_date = '2020-01-01'

tickers = Ticker(stocks)
df = tickers.history(start=start_date, end=end_date)

# Reset Index
df.reset_index(inplace=True)

# Pivot
df = df.pivot(index='date', columns='symbol', values='adjclose')

# Plot
df.plot(figsize=(10,5))
plt.show()
...