En otras publicaciones he demostrado cómo se puede usar quandl en Python para consultar datos de series de tiempo en, por ejemplo, precios de las acciones. En esta publicación, demuestro cómo se pueden consultar los datos del precio de las acciones, por ejemplo Yahoo Finance, usando el módulo pandas_datareader en Python.
En el siguiente ejemplo, importo pandas_datareader y consulto los datos de precios de las acciones de Procter & Gamble entre 2020-01-01 y 2020-09-29:
# import relevant modules
import pandas_datareader.data as web
import datetime
# define datetimes for start and end dates
start_date = datetime.datetime(2020, 1, 1)
end_date = datetime.datetime(2020, 9, 29)
# import stock data for given period between start and end date form yahoo finance
df = web.DataReader("PG", "yahoo",start_date, end_date)
# display returned dataframe header
df.head()
| Alta | Baja | Abierta | Cerrar | Volumen | Adj Cerrar | |
|---|---|---|---|---|---|---|
| Fecha | ||||||
| 2020-01-02 | 124.730003 | 122.940002 | 124.500000 | 123.410004 | 8130800.0 | 121.104179 |
| 2020-01-03 | 123.529999 | 121.860001 | 122.160004 | 122.580002 | 7970500.0 | 120.289688 |
| 2020-01-06 | 123.190002 | 122.379997 | 122.570000 | 122.750000 | 6674400.0 | 120.456505 |
| 2020-01-07 | 123.209999 | 121.870003 | 122.879997 | 121.989998 | 7583400.0 | 119.710701 |
| 2020-01-08 | 123.430000 | 122.000000 | 122.190002 | 122.510002 | 5385100.0 | 120.220985 |
Usando matplotlib.pyplot puedo visualizar los datos por ej. trazar precios de cierre diarios. Esto es lo que hago en las siguientes líneas de código:
# import matplotlib.pyplot
import matplotlib.pyplot as plt
# crear figura
plt.figure(figsize=(17.5,10))
# crear un diagrama de línea para los precios de cierre
plt.plot(df.index,df["Close"],color="red")
# agregar título a la trama
plt.title("Procter & Gamble daily stock closing prices (src: Yahoo)",size=22)
# agregar etiqueta del eje x
plt.xlabel("Date",size=16)
# agregar etiqueta del eje y
plt.ylabel("Closing price [USD]",size=16)
Text(0, 0.5, 'Closing price [USD]')

A continuación, veo otro ejemplo, recuperando y visualizando datos de precios de acciones que se remontan a 2015:
# consultar datos de nuevo
df = web.DataReader("PG", "yahoo",datetime.datetime(2015,1,1), datetime.datetime(2020,9,29))
# crear figura
plt.figure(figsize=(17.5,10))
# crear un diagrama de línea para los precios de cierre
plt.plot(df.index,df["Close"],color="red")
# agregar título a la trama
plt.title("Procter & Gamble daily stock closing prices (src: Yahoo)",size=22)
# agregar etiqueta del eje x
plt.xlabel("Date",size=16)
# agregar etiqueta del eje y
plt.ylabel("Closing price [USD]",size=16)
Text(0, 0.5, 'Closing price [USD]')

Y finalmente otro ejemplo que se remonta al año 2000:
# consultar datos de nuevo
df = web.DataReader("PG", "yahoo",datetime.datetime(2000,1,1), datetime.datetime(2020,9,29))
# crear figura
plt.figure(figsize=(17.5,10))
# crear un diagrama de línea para los precios de cierre
plt.plot(df.index,df["Close"],color="red")
# agregar título a la trama
plt.title("Procter & Gamble daily stock closing prices (src: Yahoo)",size=22)
# agregar etiqueta del eje x
plt.xlabel("Date",size=16)
# agregar etiqueta del eje y
plt.ylabel("Closing price [USD]",size=16)
Text(0, 0.5, 'Closing price [USD]')


Ingeniero industrial especializado en optimización y simulación (R, Python, SQL, VBA)

Leave a Reply