Python - Guardar elemento de un ciclo for (de acuerdo al valor que tome i)

 
Vista:

Guardar elemento de un ciclo for (de acuerdo al valor que tome i)

Publicado por Daniela Estay (5 intervenciones) el 07/05/2019 17:43:12
Amigos ¿me ayudan porfavor?
Estoy tratando de generar 3 elementos de acuerdo al i que vaya corriendo, dado que después los quiero juntar todos en una table. Necesito obtener ll_2, ll_3 y ll_4, y el código que utilizo es este:

1
2
3
for i in (2,3,4):
    "ll_"+str(i)]=2*i
print(ll_i)

Sin embargo no me funciona, me dice este error:


1
2
3
4
File "<ipython-input-383-bc20c48531db>", line 2
    "ll_"+str(i)]=2*i
                ^
SyntaxError: invalid syntax

¿Me ayudar por favor?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de joel
Val: 3.475
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Guardar elemento de un ciclo for (de acuerdo al valor que tome i)

Publicado por joel (901 intervenciones) el 07/05/2019 17:58:09
Hola Daniela, no se que quieres hacer en la linea que te da el error, pero tes esta diciendo que tienes un cierre de llave ( ] ) que no se abre en ningún sitio.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Guardar elemento de un ciclo for (de acuerdo al valor que tome i)

Publicado por Daniela Estay (5 intervenciones) el 07/05/2019 18:03:00
Cierto, perdón este es mi código
1
2
3
for i in (2,3,4):
    ["ll_"+str(i)]=2*i
print(ll_i)

Mi idea es por ejemplo que yo llamara a ll_2 y me trajera el resultado asociado a i=2, es decir 2*2=4, para el ll_3, me trajer el valor 2*3=6, y así. El problema es que coloco por ejemplo ll_2 y dice que no está definido
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de joel
Val: 3.475
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Guardar elemento de un ciclo for (de acuerdo al valor que tome i)

Publicado por joel (901 intervenciones) el 07/05/2019 18:53:13
Hola Daniela, esto que intentas hacer, no tiene mucho sentido... es mejor llenar una lista con los resultados que no crear una variable para cada uno de los elementos que pueda tener el bucle.

De todas maneras, si deseas crear variables puedes hacerlo con exec()

1
2
3
for i in (2,3,4):
    exec("ll_%s = %s" % (i,2*i))
print(ll_2)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Guardar elemento de un ciclo for (de acuerdo al valor que tome i)

Publicado por Daniela Estay (5 intervenciones) el 07/05/2019 19:01:46
Muchas gracias, y como podría crear la base, es que la verdad quiero nombrar los calculos para después irlos juntando en una base de datos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de joel
Val: 3.475
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Guardar elemento de un ciclo for (de acuerdo al valor que tome i)

Publicado por joel (901 intervenciones) el 07/05/2019 21:17:03
A que te refieres con "como podría crear la base"??
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Guardar elemento de un ciclo for (de acuerdo al valor que tome i)

Publicado por Daniela Estay (5 intervenciones) el 07/05/2019 21:26:16
Lo que pasa es que yo quería formar una base de datos nueva de una original, en la cual dependiendo del desde y hasta replicaré las filas. Por ejemplo si el desde de la primera fila es 134 y el hasta 138, la idea es esa fila replicarla de manera que quede 5 veces, para poder asociar una fila al 134, otra al 135, otra al 136, 137 y 138, luego seguir recorriendo la base original e ir pegando estas corridas en una nueva base. Es decir por ejemplo esta es la base original:
Id Parametro Producto Cobertura Tipo_Cliente Genero Fumador Canal_Comision Desde_Capital Hasta_Capital Desde_Edad Hasta_Edad Desde_Antiguedad Hasta_Antiguedad Desde_N_PB_Ac Hasta_N_PB_Ac Plan Variable_Temporal Desde Hasta Valor
3 Qx_M70_Mensual -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 EDAD 134 138 0.053416604
3 Qx_M70_Mensual -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 EDAD 135 135 0.053621011
3 Qx_M70_Mensual -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 EDAD 136 136 0.053826841

Y me gustaría obtener con el código esto
Id Parametro Producto Cobertura Tipo_Cliente Genero Fumador Canal_Comision Desde_Capital Hasta_Capital Desde_Edad Hasta_Edad Desde_Antiguedad Hasta_Antiguedad Desde_N_PB_Ac Hasta_N_PB_Ac Plan Variable_Temporal Desde Hasta Valor
3 Qx_M70_Mensual -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 EDAD 134 138 0.053416604
3 Qx_M70_Mensual -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 EDAD 134 138 0.053416604
3 Qx_M70_Mensual -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 EDAD 134 138 0.053416604
3 Qx_M70_Mensual -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 EDAD 134 138 0.053416604
3 Qx_M70_Mensual -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 EDAD 134 138 0.053416604
3 Qx_M70_Mensual -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 EDAD 135 135 0.053621011
3 Qx_M70_Mensual -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 EDAD 136 136 0.053826841

Pero no logro llegar, este es el codigo que estoy planteando:
1
2
3
4
5
6
7
8
9
10
for i in range (0,2):
    if df.iloc[i,19] > df.iloc[i,18]:
        l=pd.DataFrame(np.repeat(df.iloc[i:i+1].values,df.iloc[i,19] - df.iloc[i,18]+1,axis=0),columns=['Id','Parametro','Producto','Cobertura','Tipo_Cliente','Genero','Fumador','Canal_Comision','Desde_Capital','Hasta_Capital','Desde_Edad','Hasta_Edad','Desde_Antiguedad','Hasta_Antiguedad','Desde_N_PB_Ac','Hasta_N_PB_Ac','Plan','Variable_Temporal','Desde','Hasta','Valor'])
    else:
        l=pd.DataFrame(df.loc[i])
    if(i==0):
        s=l
    else:
        s=s.append(l)
print (s)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar