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