Buscar este blog

viernes, 11 de febrero de 2022

Descargar datos de Yahoo finance con PYTHON

 Instalar el modulo yahoo_fin

pip install yahoo_fin


Ejemplo de descargar datos (precio apertura, maximo, minimo, cierre, cierre ajustado, volumen) S&P 500:

from yahoo_fin.stock_info import get_data
sp500_data = get_data('^GSPC')
print(sp500_data)


Resultado:

open high low close adjclose \ 1970-03-25 0.000000 91.070000 88.110001 89.769997 89.769997 1970-03-26 0.000000 90.650002 89.180000 89.919998 89.919998 1970-03-30 0.000000 90.410004 88.910004 89.629997 89.629997 1970-03-31 0.000000 90.169998 88.849998 89.629997 89.629997 1970-04-01 0.000000 90.620003 89.300003 90.070000 90.070000 ... ... ... ... ... ... 2022-02-07 4505.750000 4521.859863 4471.470215 4483.870117 4483.870117 2022-02-08 4480.020020 4531.319824 4465.399902 4521.540039 4521.540039 2022-02-09 4547.000000 4590.029785 4547.000000 4587.180176 4587.180176 2022-02-10 4553.240234 4588.919922 4484.310059 4504.080078 4504.080078 2022-02-11 4506.270020 4515.200195 4501.529785 4504.939941 4504.939941 volume ticker 1970-03-25 17500000 ^GSPC 1970-03-26 11350000 ^GSPC 1970-03-30 9600000 ^GSPC 1970-03-31 8370000 ^GSPC 1970-04-01 9810000 ^GSPC ... ... ... 2022-02-07 3291600000 ^GSPC 2022-02-08 3509330000 ^GSPC 2022-02-09 3662810000 ^GSPC 2022-02-10 4490500000 ^GSPC






Codigo programa descargar a partir de una fecha:
from yahoo_fin.stock_info import get_data
de1999 = get_data('^GSPC' , start_date = '01/01/1999')
print(de1999)

Resultado:

open high low close adjclose \ 1999-01-04 1229.229980 1248.810059 1219.099976 1228.099976 1228.099976 1999-01-05 1228.099976 1246.109985 1228.099976 1244.780029 1244.780029 1999-01-06 1244.780029 1272.500000 1244.780029 1272.339966 1272.339966 1999-01-07 1272.339966 1272.339966 1257.680054 1269.729980 1269.729980 1999-01-08 1269.729980 1278.239990 1261.819946 1275.089966 1275.089966 ... ... ... ... ... ... 2022-02-07 4505.750000 4521.859863 4471.470215 4483.870117 4483.870117 2022-02-08 4480.020020 4531.319824 4465.399902 4521.540039 4521.540039 2022-02-09 4547.000000 4590.029785 4547.000000 4587.180176 4587.180176 2022-02-10 4553.240234 4588.919922 4484.310059 4504.080078 4504.080078 2022-02-11 4506.270020 4526.330078 4501.529785 4519.910156 4519.910156 volume ticker 1999-01-04 877000000 ^GSPC 1999-01-05 775000000 ^GSPC 1999-01-06 986900000 ^GSPC 1999-01-07 863000000 ^GSPC 1999-01-08 937800000 ^GSPC ... ... ... 2022-02-07 3291600000 ^GSPC 2022-02-08 3509330000 ^GSPC 2022-02-09 3662810000 ^GSPC 2022-02-10 4490500000 ^GSPC 2022-02-11 269992049 ^GSPC

domingo, 22 de noviembre de 2020

Operaciones de matrices con Pandas en Python

 Obtener el dato de una celda de una matriz pandas_matriz: pandas_matriz.iloc[fila,columna]


Operaciones con filas con Pandas /Python: 

        obtener filas: pandas_matriz.iloc[numerofila]

                 grupo seguido de filas: pandas_matriz.iloc[primera_fila:ultima_fila]

                  grupo alternado de filas: pandas_matriz.iloc[[primerafila,segundafila,quintafila]]

                   Seleccionar filas con un valor de columna: pandas_matriz.loc[:,columna]==valorcolumna

                   Primeras filas: panda_matriz.head()

                    Ultimas filas: panda_matriz.tail()


Operaciones con columnas  con Pandas /Python: 

    obtener columnas: pandas_matriz.iloc[:,columna]

                primera columna: pandas_matriz.iloc[:,0]

                ultima columna:  pandas_matriz.iloc[:,-1]

                grupo seguido de columnas: pandas_matriz.iloc[:,primera_fila:ultima_fila]

                grupo alternado de columnas: pandas_matriz.iloc[:,[primeracolumna,segundacolumna,quintacolumna]]

Listar valores de las columnas de la matriz: list(pandas_matrix.columns.values)

Obtener el nombre de la primera columna: pandas_matrix.columns[0]

Operaciones con indices con Pandas /Python:       

Obtener primer dato indice / indice de filas: pandas_matrix.index[0]

Borrar primera fila de la matriz: pandas_matrix.drop(pandas.matrix.index[0])

Listar valores indice de la matriz: list(pandas_matrix.index.values)

Recorrer las filas de las columnas:

for x in range(len(pandas_matriz.index)): print(pandas_matriz["nombre_columna"].iloc[x])

Acceder a un dato de una celda por numero entero fila columna: pandas_matriz.iat[numero_fila,numero_columna]       

Remplazar dato en una matriz: pandas_matriz.replace(to_replace='valor',value='nuevo valor',regex=True).astype(float)


Operaciones con matrices con Pandas /Python: 

Multiplicar dos matrices: matriz1.dot(matriz2)

Trasponer una matriz: pandas_matriz.transpose()





https://www.geeksforgeeks.org/python-pandas-dataframe-replace/

https://datatofish.com/replace-values-pandas-dataframe/

jueves, 27 de junio de 2019

Ejemplos de la funcion condicional SI / IF en LibreOffice


Los valores A1=-3, A2=3,A3=3, B1=3,B2=-3,B3=3, en la tabla en LibreOffice. Si le aplicamos la funcion Si condicional en la tabla de LibreoOffice tendremos los siguientes resultados para los ejemplos:


=SI(A1>B1)        ----- Falso
=SI(A2>B2)        ----- Falso
=SI(A3>B3)         ----- Verdadero

=SI(A1<B1)        ----- Verdadero
=SI(A2<B2)        ----- Falso
=SI(A3<B3)         ----- Falso

=SI(A1>=B1)        ----- Falso
Ejemplos de la funcion condicional SI / IF en LibreOffice
=SI(A2>=B2)        ----- Verdadero
=SI(A3>=B3)         ----- Verdadero

=SI(A1<=B1)        ----- Verdadero
=SI(A2<=B2)        ----- Verdadero
=SI(A3<=B3)         ----- Falso


=SI(A1<B1;A1;0)     ----- -3
=SI(A2<B2;A2;0)        ----- 0
=SI(A3<B3;A3;0)         ----- 0


=SI(A1<B1;0;A1)     ----- 0
=SI(A2<B2;0;A2)        ----- 3
=SI(A3<B3;0;A3)         ----- 3


=SI(A1<B1;"hola";"adios")     ----- hola
=SI(A2<B2;"hola";"adios")        -----  adios
=SI(A3<B3;"hola";"adios")         ----- adios


=SI(A1=B1;"hola";"adios")     ----- adios
=SI(A2=B2;"hola";"adios")        -----  adios
=SI(A3=B3;"hola";"adios")         ----- hola


domingo, 11 de febrero de 2018

Cambiar texto segun un diccionario en Python


Codigo en Python para cambiar las letras en un texto segun un diccionario, en este caso cambiamos las vocales minusculas en el texto por su correspondientes mayusculas.

Codigo en Python:

#Funcion que cambia texto segun un diccionario
def cambiar_todas(texto, dicc):
    for i, j in dicc.items():
        texto = texto.replace(i, j)
    return texto

mi_texto = 'cambiar un texto.'
#Diccionario que contiene las equivalencias entre minusculas y mayusculas de las vocales
diccvocales = {'a':'A', 'e':'E', 'i':'I', 'o':'O','u':'U' }
#Ejecutar funcion
texto = cambiar_todas(mi_texto, diccvocales)
#Visualizar texto original
print('Texto original: '+mi_texto)
#Visualizar texto cambiado
print ('Texto cambiado: '+ texto) 


Resultado:
Texto original: cambiar un texto.
Texto cambiado: cAmbIAr Un tExtO.

miércoles, 7 de febrero de 2018

Instalar Python en Windows


Debido a los problemas y errores que tienen algunos paquetes con las Visual Build Tools C++ de Windows, instalar el Python en Windows es mejor instalar Anaconda, probe tambien Cgywin (pero era un cansancio instalar gcc ... ) y con Virtualbox y algun linux pero me funciona mejor con Anaconda. Como el sistema de Anaconda si utilizamos el lanzador (Anaconda Navigator)  relentiza mucho el ordenador es mejor utilizar Anaconda prompt si tienes un ordenador con pocos recursos. Por definicion empezamos en el entorno raiz (root).

Instalaremos los paquetes que necesitemos en principio:

conda install NOMBREPAQUETE


Comprobaremos la lista de entornos que existen con un * nos marcar el entorno activo.
conda env list 

Si no existe el entorno crearemos un entorno con la version de python que queramos en este caso (3.6)
conda create --name NOMBREENTORNO python=3.6

Comprobaremos si creamos el entorno
conda env list 


Activaremos el entorno
activate NOMBREENTORNO

Comprobaremos la version de python en el entorno:
python --version

Podemos instalar paquetes en ese entorno y para esa version de python:
pip install NOMBREPAQUETE

Para entrar en modos comandos de python:
python

Para salir de modo comandos de python y volver a conda:
ctrol+Z




Ordenes en Anaconda Prompt:

conda info                  >>>    Version de conda instalada

conda update conda  >>>>    Actualizar conda

conda install NOMBREPAQUETE    >>>> instala el modulo/paquete  NOMBREPAQUETE

conda update NOMBREPAQUETE   >>>> actualizar el modulo/paquete  NOMBREPAQUETE

COMANDO --help   >>>> ayuda sobre COMANDO

conda search NOMBREPAQUETE >>  Buscar un paquete llamado NOMBREPAQUETE

conda create --name py35 python=3.5 >> Crear un nuevo entorno llamado py35 e instalar Python 3.5
activate py35  >> Activar el entorno py35   

deactivate py35 >> Desactivar el entorno llamado py35

conda env list >> Lista de entornos en conda

conda create --clone py35 --name py35-2 >> Hacer un clon de un entorno py35

conda list  >> lista de paquetes y versiones instaladas

conda list --revisions >> Lista de cambios de versiones

conda env remove --name py35 >> Borrar el entorno llamado py35

conda install --name py35 NOMBREPAQUETE >> Instalar un paquete llamado NOMBREPAQUETE en el entorno llamado py35

python --version >> Version de python en el entorno actual



Paquetes / Modulos

Matplotlib: extension de graficos de Python.
Scipy: Extension cientifica de Python.
Pyaudio: Grabar sonido con Python
Numpy: Extension de numerica de Python
Pillow: Libreria para imagenes de Python
Portaudio: Puertos de audio

conda install numpy conda install scipy conda install pillow conda install matplotlib conda install python.app

sábado, 19 de noviembre de 2016

Parentesis en Latex


Codigo en Latex para realizar parentesis grandes:

\[\left|\frac{1}{x+1}\right|\]  

\[\left\lfloor\frac{1}
{x+1}\right\rfloor\] 

\[\left\lVert\frac{1}{x+1}\right\rVert\] 

\[\left[\frac{1}{x+1}\right]\] 

\[\left(\frac{1}{x+1}\right)\] 



lunes, 31 de octubre de 2016

Espacio entre lineas en Latex


Para introducir espacio entre lineas en Latex. Un salto de linea o varios la forma mas sencilla es utilizar vspace{espacio en cm}


Codigo a poner despues de begin{document}
y entre los textos, ecuaciones o imagenes que queremos separar verticalmente.

\begin{document} 

\[i=0\] 
\vspace{1cm}  
\[i=i+1\] 
\end{document}