Closed leonardorame closed 4 years ago
Solucionado.
Para obtener los campos retornados por quote
hacemos esto:
print(quotes.columns.values.tolist())
En el caso del portfolio personal retorna esto:
['bidsize', 'bid', 'ask', 'asksize', 'last', 'change', 'open', 'high', 'low', 'previous_close', 'turnover', 'volume', 'operations', 'datetime', 'expiration', 'strike', 'kind']
Si queremos obtener el bid es así:
print(quotes['bid'].values[0])
Como values
es un array tenemos que usar el índice 0 para obtener su 1er elemento.
Con esto obtenemos los datos sueltos, de forma tal de poder usarlos por fuera de Pandas Dataframe:
def on_personal_portfolio(online, quotes):
for q in quotes.index:
print("{} {} {} {} {} {}".format(q[0],
quotes['bidsize'][q],
quotes['bid'][q],
quotes['ask'][q],
quotes['asksize'][q],
quotes['last'][q]
))
El resultado es este:
AL30 80816 6545.0 6549.0 20000 6545.0
Dejo algunos ejemplos de como manejar la informacion en el dataframe.
Como obtener un campo en particular. quotes.loc[('GGAL','48hs'), 'ask']
Para chequear si existe el campo if quotes.index.isin([('GGAL','48hs')]).any():
Para obtener todos los campos de un subyacente: quotes.loc[('GGAL','48hs')]
Para obtener todos los campos de un subyacente independiente del plazo: quotes.loc['GGAL']
Para obtener un campo de un subyacente independiente del plazo: quotes.loc['GGAL','last']
Los Dataframes son muy potentes, rapidos y simples de usar.
Aca dejo una pagina de como trabajar con dataframes con multiindex. https://pandas.pydata.org/pandas-docs/stable/user_guide/advanced.html
Hola Diego, estoy intentando obtener los datos (bid, ask, volumen, nombre, etc.) retornados por el parámetro
quote
, pero aparentemente trae más información que la que yo necesito.Te muestro un ejemplo:
Retorna esto:
O sea, yo pedí imprimir dos variables
{} {}
, la 1era es elbid
y la 2da elask
, pero trae el siguiente bloque para el bid:y el siguiente para el ask:
¿Tenés idea cómo obtener sólo el
38.21
y el38.34
?.