Python - openpyxl e iteraciones de ecuaciones. Excel Python

 
Vista:
sin imagen de perfil
Val: 14
Ha disminuido su posición en 5 puestos en Python (en relación al último mes)
Gráfica de Python

openpyxl e iteraciones de ecuaciones. Excel Python

Publicado por Luciano (5 intervenciones) el 20/01/2021 03:13:48
Buenas buenas gente inteligente, hoy vengo con el siguiente problema: Tengo en excel la siguiente tabla de informacion, que vienen a ser los parametros geometricos de subcuencas para el calculo de caudales para lluvias.
Capture
cada fila es una subcuenca diferente a la cual le tengo que aplicar la misma serie de ecuaciones para obtener el caudal que eroga cada una, por lo que necesito definir una variable para cada columna que itere los valores de cada fila, para asi poder hacer las mismas ecuaciones en cada fila con los diferentes datos que hay en ellas.
Para ello vengo escribiendo este codigo, en donde primero trato de generar una iteracion de los valores de Area, C y Tc para poder calcular el In (Intensidad de lluvia) que me permite calcular el Q (caudal) para cada fila o subcuenca.
El principal problema que tengo es que arranque con Python (primera ves que intento programar) hace 1 semana y 2 dias por lo que estoy bastante mareado y no tengo ni idea si la forma que estoy usando es la adecuada.
En el medio del codigo genere la lista de datos que corre pero no me estaria sirviendo para nada
Las principales dudas que tengo son:
~ la desigualdad planteada en el while sirve para recorrer hasta el final de la tabla de valores? (cuando me quede sin datos y se encuentre una celda vacia sea igual a 0)
~se puede aplicar el .append a la fila (row) como lo hice? y si no se hace de esa forma...como?
~un while es la mejor forma de hacer esto? estoy errando sustancialmente la forma de encarar mi problema?

por lo pronto corro el codigo y me da el siguiente error que tampoco se subsanar
File "C:\Users\Lucho\Python\metodoracional.py", line 45, in <module>
In = a*(Tc/60)**b
TypeError: unsupported operand type(s) for ** or pow(): 'float' and 'str'
por lo que vendria a ser la cuarta duda

sin mas les dejo el codigo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#Calculo de caudales mediante el Metodo Racional
 
import openpyxl
 
#cargando planilla con datos
entrada = openpyxl.load_workbook('MR.xlsx', data_only=True)
hoja = entrada.active
celdas = hoja['A10' : 'K60']
 
#generacion de lista de datos
lista_datos = []
for fila in celdas:
	datos = [celda.value for celda in fila]
	lista_datos.append(datos)
 
#print (lista_datos)
 
#obtencion de variables no iterables (constantes)
a = hoja.cell(column=3,row=5).value
b = hoja.cell(column=3,row=6).value
 
#variables del excel transformadas a iterables
Tramo_it = []
Area_it = []
C_it = []
Long_it = []
Tc_it = []
Conexion_it = []
Conduccion_it = []
i_it = []
In_it = []
Q_it = []
Tramo = [1]
 
#intento de operaciones por filas
while Tramo != 0:
	Tramo = hoja.cell(column=1,row=10).value
	Tramo_it.append(Tramo)
	Area = hoja.cell(column=2,row=10).value
	Area_it.append(Area)
	C = hoja.cell(column=3,row=10).value
	C_it.append(C)
	Tc = hoja.cell(column=5,row=10).value
	Tc_it.append(Tc)
	In = a*(Tc/60)**b
	In_it.append(In)
	Q = Area*C*In
	Q_it.append(Q)
	row += 1

Espero haber sido lo suficientemente claro.
Desde ya muchas gracias.
Saludos.
Lucho
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
sin imagen de perfil
Val: 2.691
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

openpyxl e iteraciones de ecuaciones. Excel Python

Publicado por tincopasan (799 intervenciones) el 20/01/2021 05:10:28
¿podrías poner el archivo xlsx?
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
sin imagen de perfil
Val: 14
Ha disminuido su posición en 5 puestos en Python (en relación al último mes)
Gráfica de Python

openpyxl e iteraciones de ecuaciones. Excel Python

Publicado por Luciano (5 intervenciones) el 20/01/2021 12:51:42
ahi va! lo mando en .rar ya que la web no me deja enviar .xlsx
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
sin imagen de perfil
Val: 14
Ha disminuido su posición en 5 puestos en Python (en relación al último mes)
Gráfica de Python

openpyxl e iteraciones de ecuaciones. Excel Python

Publicado por Luciano (5 intervenciones) el 20/01/2021 16:55:01
debo aclara que en la planilla de Excel que acabo de subir hay algunas celdas cambiadas de nombre:
la celda B5 llamada 'I' vendria a ser 'a'
la celda C5 llamada 'T" vendria a ser 'b'
la celda A9 llamada 'Ramal' vendria a ser 'Tramo'
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
sin imagen de perfil
Val: 2.691
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

openpyxl e iteraciones de ecuaciones. Excel Python

Publicado por tincopasan (799 intervenciones) el 20/01/2021 18:25:06
bueno una posible solución sería cambiar el formato de la celda C5 a número y usar "," (coma) como separador decimal, en vez de "." (punto) que es lo que tiene

la otra sería:
1
b = float(hoja.cell(column=3,row=6).value)

pasando directamente a decimal lo que en el xslx es un texto
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