Pandas_datareader para consultas de precios de acciones de Yahoo en Python

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()
AltaBajaAbiertaCerrarVolumenAdj Cerrar
Fecha
2020-01-02124.730003122.940002124.500000123.4100048130800.0121.104179
2020-01-03123.529999121.860001122.160004122.5800027970500.0120.289688
2020-01-06123.190002122.379997122.570000122.7500006674400.0120.456505
2020-01-07123.209999121.870003122.879997121.9899987583400.0119.710701
2020-01-08123.430000122.000000122.190002122.5100025385100.0120.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]')

Leave a Reply

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Close

Meta