ARCHIVOS:
Índice de la página:
Descripciones.
CSV.
XLSX.
PKL.
XLSX.
PKL.
-------------------------------------------------------------------------------
Descripciones:## Primero creamos una función para hacerlo todo a través de ella
def creacion():
archivo = open('C:/BOLSA_1/texto.txt', 'w') # Si existe el archivo lo abre, si no existe crea el archivo de (escritura(w),
lectura(r), Escribir sin modificar el contenido concatenando(a)
archivo.close() # Cierra el archivo
creacion() # Llama a la función creacion, al ejecutar ahora me crea el archivo 'texto.txt'
## Escritura
def escribir():
archivo = open('C:/BOLSA_1/texto.txt', 'a')
archivo.write('Nombre: Melchor González
')
archivo.write('Edad: 66
')
archivo.close()
escribir() # Llamar a la función escribir
## Lectura
def leer():
archivo = open('C:/BOLSA_1/texto.txt', 'r')
fila = archivo.readline() # Me lee una linea concreta a través del siguiente while
while fila != '': # Que sea diferente a cadena vacía (al detectar el final del archivo ya no sigue leyendo)
print(fila)
fila = archivo.readline()
archivo.close()
leer() # Llamar a la función leer
-----------------------------------------------------------
CSV:
## SI EL ARCHIVO NO ESTÁ EN LA CARPETA DEL NOTEBOOK, HAY QUE PONERLE LA RUTA AL ARCHIVO
# Bajar un archivo csv de Yahoo
import yfinance as yf
orcl = yf.download("ORCL", start="2000-01-01", end="2019-01-01")
# Ahora bajarlos usando pandas datareader
from pandas_datareader import data as pdr
import yfinance as yf
yf.pdr_override()
orcl = pdr.get_data_yahoo("ORCL", start="2000-01-01", end="2019-01-01")
# Leer Archivos csv, creando indice en una columna:
df = pd.read_csv('C:/Users/USER/Dropbox/PYTHON/HERRAMIENTAS/Borrar1.csv', index_col='Date')
df = pd.read_csv('cuenta.csv',index_col='Ticket') # Lee el archivo y pone como índice la columna 'Ticket'
df = pd.read_csv('SP500_20.csv',index_col=0) # Lee el archivo 'SP500_20.csv' y pone como índice la columna cero
df = pd.read_csv('Cars.csv', sep = ';') # Lee el archivo csv separado por ';'
# Utilizo el archivo tal como sale de CuanDataManager (sin nombre de columnas)
# parse_dates=True: deja las fechas con formato de fechas para poderlas trabajar
# usecols=[0, 2, 3] para decirle las columnas que quiero usar
# header=None (Le digo que el archivo no tiene nombre de columnas
# names (le pongo nombre a las columnas)
dfc = pd.read_csv('EURUSD-D.csv', index_col=0, parse_dates=True, usecols=[0, 2, 3, 4, 5, 6], header=None, names=['Vela', 'Open', 'High', 'Low', 'Close', 'Volumen'])
# Crear archivo 'Borrar1' en csv:
df.to_csv('C:/Users/USER/Dropbox/PYTHON/HERRAMIENTAS/Borrar1.csv')
df.to_csv('C:/Users/USER/Dropbox/PYTHON/HERRAMIENTAS/Borrar1.csv', index=False) # No mantiene el índice por defecto
-----------------------------------------------------------
XLSX:
# Leer Archivos excel, creando indice en una columna:
df = pd.read_excel('C:/Users/USER/Dropbox/PYTHON/HERRAMIENTAS/Borrar1.xlsx', parse_dates=True, index_col=0)
df = pd.read_excel('Borrar1.xlsx', index_col='date', names=['date', 'equity']) # Crea índice y pone nombre a las columnas
# Lee archivo excel una hoja concreta, y elige las columnas que necesita
df1 = pd.read_excel(ruta_carpeta + nombre_archivo, sheet_name='n1b-MT1',
usecols=[1,2,3,4,5,6,7,9,10,11,12,13,14,15,16,20], header=None, names=cabecera)
# Crear archivo 'Borrar1' en excel:
df.to_excel('C:/Users/USER/Dropbox/PYTHON/HERRAMIENTAS/Borrar1.xlsx')
# Creo el archivo excel 'Ejercicio6.xlsx' y su hoja 'cuenta_trading' se crean en la carpeta de este Notebook
df.to_excel('Ejercicio6.xlsx', sheet_name='cuenta_trading', index=True) # index=False No mantiene el índice.
-----------------------------------------------------------
PKL:
# Es un tipo objeto que guarda muchos archivos en uno solo
import pandas as pd
import yfinance as yf # Librería del parche para descargar datos de yahoo
yf.pdr_override() # Importamos Pandas Datareader y lo parcheamos para que funcione con Yahoo
import pickle # Importamos el módulo para crear el archivo .pkl
class MarketIndex:
def __init__(self, url = 0, pos = 0, postfix=""):
self.url = url
self.pos = pos
self.postfix = postfix
def get_data(start='2008-01-01', end=None, index='syp'):
indexes = {}
indexes['ibex35'] = MarketIndex(r'https://es.wikipedia.org/wiki/IBEX_35', 2, '.MC')
indexes['nasdaq100'] = MarketIndex(r'https://en.wikipedia.org/wiki/NASDAQ-100', 2, '')
indexes['mdax'] = MarketIndex(r'https://en.wikipedia.org/wiki/MDAX', 1, '.DE')
indexes['ftsemib'] = MarketIndex(r'https://en.wikipedia.org/wiki/FTSE_MIB', 0, '.MI')
indexes['eurostoxx50'] = MarketIndex(r'https://en.wikipedia.org/wiki/Euro_Stoxx_50', 2, '')
# ESTOS ÍNDICES NO FUNCIONAN
#indexes['syp'] = MarketIndex(r'https://en.wikipedia.org/wiki/List_of_S%26P_500_companies', 0, '')
#indexes['cac40'] = MarketIndex(r'https://en.wikipedia.org/wiki/CAC_40', 2, '')
#indexes['ftse250'] = MarketIndex(r'https://en.wikipedia.org/wiki/FTSE_250_Index', 1, '.L', 'Ticker[4]')
#indexes['dax'] = MarketIndex(r'https://en.wikipedia.org/wiki/DAX', 2, '.DE', 'Ticker symbol')
#indexes['aex'] = MarketIndex(r'https://en.wikipedia.org/wiki/AEX_index', 1, '.AS', 'Ticker symbol')
#indexes['amx'] = MarketIndex(r'https://en.wikipedia.org/wiki/AMX_index', 0, '.AS', 'Ticker symbol')
#indexes['bel20'] = MarketIndex(r'https://en.wikipedia.org/wiki/BEL_20', 1, '.BR', 'Ticker symbol')
if index in indexes:
url = indexes[index].url
pos = indexes[index].pos
postfix = indexes[index].postfix
else:
print('Index '+index+' not configured/available!')
# Obtiene la lista actual de tickers
index_assets = pd.read_html(url, header=0)[pos]
assets = (index_assets.Ticker+postfix).tolist()
# Descarga el histórico en un DataFrame Multi-Indice
try:
data = yf.download(assets, start=start, as_panel=False)
# Si pedimos el IBEX el nombre del archivo sería "ibex35_componentes.pkl" y estará en la carpeta HERRAMIENTAS
filename = 'C:/Users/USER/Dropbox/PYTHON/HERRAMIENTAS/'+index+'_componentes.pkl'
data.to_pickle(filename)
print('Data saved at {}'.format(filename))
except ValueError:
print('Failed download, try again.')
data = None
except OSError:
print('Failed saving file: '+filename+', try again.')
return data
# Extrae los componentes de los índices que necesitemos
#IBEX35 = get_data(index="ibex35")
#NASDAQ100 = get_data(index="nasdaq100")
#MDAX = get_data(index="mdax")
#FTSEMIB = get_data(index="ftsemib")
#Euro_Stoxx_50 = get_data(index="eurostoxx50")
-----------------------------------------------------------