
Duda sobre bucle en python
Publicado por Antonio (1 intervención) el 21/02/2023 03:13:25
Buenos dias, tengo el siguiente bucle con un dataframe al que he agrupado por fecha:
meses = Operaciones_LC.groupby([Operaciones_LC.Time.dt.year, Operaciones_LC.Time.dt.month])
resultados = []
contador = 0
ultima_tupla = None
year = None
month = None
for grupo, datos in meses:
year, month = grupo
profit = datos[datos['Operacion'] > 0]['Operacion'].sum()
loss = abs(datos[datos['Operacion'] < 0]['Operacion'].sum())
if loss == 0:
profit_factor = 99
else:
profit_factor = profit / loss
resultados.append((year, month, profit_factor))
if profit_factor < 1:
contador += 1
else:
contador = 0
if contador == 6:
ultima_tupla = year,month
ultima_tupla_vector = np.array(ultima_tupla)
year, month = grupo
meses_nuevo = Nuevo_DataFrame(DataFrame_ASK, DataFrame_BID, ultima_tupla_vector, N, k, k_corto)
meses = meses_nuevo.groupby([meses_nuevo.Time.dt.year , meses_nuevo.Time.dt.month])
contador=0
El caso es que intento meter en la lista "resultados" los resultados del "profit factor", y cuando este es menor que 1 durante 6 meses, me cree un nuevo dataframe con el que seguir calculando. El problema es que el bucle sigue ejecutandose con el dataframe original y no calcula con el nuevo. Alguien sabria por que ocurre?
Gracias de antemano.
meses = Operaciones_LC.groupby([Operaciones_LC.Time.dt.year, Operaciones_LC.Time.dt.month])
resultados = []
contador = 0
ultima_tupla = None
year = None
month = None
for grupo, datos in meses:
year, month = grupo
profit = datos[datos['Operacion'] > 0]['Operacion'].sum()
loss = abs(datos[datos['Operacion'] < 0]['Operacion'].sum())
if loss == 0:
profit_factor = 99
else:
profit_factor = profit / loss
resultados.append((year, month, profit_factor))
if profit_factor < 1:
contador += 1
else:
contador = 0
if contador == 6:
ultima_tupla = year,month
ultima_tupla_vector = np.array(ultima_tupla)
year, month = grupo
meses_nuevo = Nuevo_DataFrame(DataFrame_ASK, DataFrame_BID, ultima_tupla_vector, N, k, k_corto)
meses = meses_nuevo.groupby([meses_nuevo.Time.dt.year , meses_nuevo.Time.dt.month])
contador=0
El caso es que intento meter en la lista "resultados" los resultados del "profit factor", y cuando este es menor que 1 durante 6 meses, me cree un nuevo dataframe con el que seguir calculando. El problema es que el bucle sigue ejecutandose con el dataframe original y no calcula con el nuevo. Alguien sabria por que ocurre?
Gracias de antemano.
Valora esta pregunta


0