Я получил сообщения об ошибке: ValueError: time data '2006–01–01' does not match format '%Y-%m-%d'. Мне не ясно, что «2006-01-01» мне кажется правильным форматом.

import numpy as np #python library for scientific computing
import pandas as pd #python library for data manipulation and analysis
import matplotlib.pyplot as plt #python library for charting
import yfinance as yf #python library to scrap data from yahoo finance
from pandas_datareader import data as pdr #extract data from internet sources into pandas data frame

yf.pdr_override()

data = pdr.get_data_yahoo('^DJI', start="2006–01–01")
data2 = pdr.get_data_yahoo("MSFT", start="2006–01–01")
data3 = pdr.get_data_yahoo("AAPL", start="2006–01–01")
data4 = pdr.get_data_yahoo("BB.TO", start="2006–01–01")

ax = (data['Close'] / data['Close'].iloc[0] * 100).plot(figsize=(15, 6))
(data2['Close'] / data2['Close'].iloc[0] * 100).plot(ax=ax, figsize=(15,6))
(data3['Close'] / data3['Close'].iloc[0] * 100).plot(ax=ax, figsize=(15,6))
(data4['Close'] / data5['Close'].iloc[0] * 100).plot(ax=ax, figsize=(15,6))

plt.legend(['Dow Jones', 'Microsoft', 'Apple', 'Blackberry'], loc='upper left')
plt.show()
1
Gladies Chang 18 Окт 2019 в 20:04
2
В этом формате используются дефисы, а не тире. Однако в данных действительно используются дефисы.
 – 
chepner
18 Окт 2019 в 20:09
Человек слишком много типов тире
 – 
ALollz
18 Окт 2019 в 20:10
2
Исторически сложилось так, что различные виды тире имели четко определенное использование. Использование компьютера свело все к дефисам, когда в наборах символов было ограниченное пространство. С Unicode тире возвращаются.
 – 
chepner
18 Окт 2019 в 20:15

1 ответ

Ваш формат использует дефисы (U + 002d). Ваш аргумент start, тем не менее, использует тире (U + 2013).

2
chepner 18 Окт 2019 в 20:13