Agregar dataframe
Estoy intentando obtener el precio de las acciones de Tiingo y agregarlos a los dataframes.
data = pd.DataFrame()
lis = ["AAPL", "MSFT", "AMZN", "GOOGL", "TSLA", "GOOG", "NVDA", "FB", "JPM", "BAC", "ADBE", "MA", "PFE", "DIS", "NFLX", "INTC", "VZ", "MO"]
for i in lis:
data = data.append(client.get_dataframe([i], frequency='weekly', metric_name='close', startDate='2020-03-01', endDate='2021-12-10'))
Sin embargo, el resultado muestra algo diferente:
AAPL MFST
2020-03-01 100 NAN
2020-03-02 101 NAN
2020-03-03 103 NAN
... NAN
2021-12-10 120 NAN
2020-03-01 NAN 600
2020-03-02 NAN 400
2020-03-03 NAN 300
... NAN
2021-12-10 NAN 1100
¿Cómo puedo hacer que se vea así?
AAPL MFST
2020-03-01 100 600
2020-03-02 101 400
2020-03-03 103 300
...<br>
2021-12-10 120 1100
davy.ai
Puedes lograr el resultado deseado modificando el bucle for de la siguiente manera:
Este código crea un dataframe temporal
temp
para cada símbolo de stock en la lista y luego lo concatena con el dataframedata
utilizando la funciónpd.concat()
. El parámetrosort
se establece enTrue
para ordenar las columnas en orden ascendente.Por defecto,
pd.concat
alineará los dataframes según el índice de las filas. Dado que los parámetrosstartDate
yendDate
son iguales para todas las acciones, el índice de las filas será idéntico en todos los dataframes, y la concatenación a lo largo del eje de las columnas (axis=1
) producirá el resultado deseado.El código también verifica si el dataframe
data
está vacío antes de concatenarlo contemp
para asegurar que los encabezados de las columnas se preserven correctamente.