Comparar series de tiempo con pandas
Comparar series de tiempo con pandas, de algunas acciones de las principales empresas tecnológicas.
1. Importar librerías
Para este ejercicio, se necesitara de las siguientes librerías:
pip install pandas
pip install matplotlib
pip install yfinance
Usaremos la librería yfinance
para obtener los datos de las acciones
de las empresas tecnológicas, hay otras librearías que también pueden
ayudar con esta tarea como pandas_datareader
o quandl
.
import pandas as pd
import matplotlib.pyplot as plt
import yfinance as yf
2. Obtener datos
Para este ejemplo, se obtendrán los datos de las acciones de las empresas tecnológicas desde el 2015 de google, amazon, facebook, apple y microsoft.
tickets = ['GOOG', 'AMZN', 'META', 'AAPL', 'MSFT']
start_date = '2015-01-01'
end_date = '2023-01-01'
df = yf.download(tickets, start=start_date, end=end_date)['Adj Close']
df.head()
[*********************100%***********************] 5 of 5 completed
AAPL | AMZN | GOOG | META | MSFT | |
---|---|---|---|---|---|
Date | |||||
2015-01-02 | 24.531763 | 15.4260 | 26.168653 | 78.449997 | 40.620667 |
2015-01-05 | 23.840666 | 15.1095 | 25.623152 | 77.190002 | 40.247116 |
2015-01-06 | 23.842913 | 14.7645 | 25.029282 | 76.150002 | 39.656406 |
2015-01-07 | 24.177238 | 14.9210 | 24.986401 | 76.150002 | 40.160259 |
2015-01-08 | 25.106184 | 15.0230 | 25.065184 | 78.180000 | 41.341694 |
3. Normalizar datos
Para poder comparar los datos vamos a normalizarlos, para esto se usará la siguiente fórmula:
$$ \frac{P_t}{P_0} * 100 $$ Donde es el precio en el tiempo y es el precio inicial.
normalized_df = df / df.iloc[0] * 100
normalized_df.head()
AAPL | AMZN | GOOG | META | MSFT | |
---|---|---|---|---|---|
Date | |||||
2015-01-02 | 100.000000 | 100.000000 | 100.000000 | 100.000000 | 100.000000 |
2015-01-05 | 97.182847 | 97.948271 | 97.915438 | 98.393888 | 99.080393 |
2015-01-06 | 97.192006 | 95.711785 | 95.646043 | 97.068202 | 97.626183 |
2015-01-07 | 98.554834 | 96.726305 | 95.482179 | 97.068202 | 98.866569 |
2015-01-08 | 102.341540 | 97.387528 | 95.783238 | 99.655836 | 101.775026 |
4. Graficar datos
Por ultimo grafiaremos los datos para poder compararlos y ver como se han comportado en el tiempo.
normalized_df.plot(figsize=(15, 10))
plt.show()
5. Conclusiones
Como hemos podido ver hacer una comparación de series de tiempo es muy sencillo con pandas, y nos permite ver como se han comportado las acciones de las empresas tecnológicas en los últimos años, las concluciones respecto al comportamiento de las acciones de las empresas tecnológicas se las dejo a ustedes.