Python - Como realizar operaciones matemáticas con datos extraídos de archivo .csv?

 
Vista:
sin imagen de perfil

Como realizar operaciones matemáticas con datos extraídos de archivo .csv?

Publicado por Emerson (3 intervenciones) el 01/06/2017 23:28:03
Buenas, soy nuevo usando python, y estoy tratando de usar la data contenida en un archivo .csv para realizar ciertas operaciones matemáticas.
Actualmente logro sacar los datos por columna de manera individual, usando el siguiente código:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import math
Pelec = []
Qelec = []
Vpal = []
Speed = []
 
with open(r'test.csv','r') as f:
	data = f.read().splitlines()
	data.pop(0)
for u in data:
	linea = u.split(';')
	Pelec.append(linea[56])
	Qelec.append(linea[57])
	Speed.append(linea[29])
	Vpal.append(linea[2])
 
        Pelec1 = Pelec[a]
	Qelec1 = Qelec[a]
	Speed1 = Speed[a]
	Vpal1 = Vpal[a]
	I1 = math.sqrt(Pelec1^2+Qelec1^2)/(Vpal1*230000)

En la ultima linea me lanza este error:
TypeError: cannot concatenate 'str' and 'int' objects

Y hasta aquí llego, no logro realizar la ultima linea del código.

Gracias por su apoyo!!
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 kip
Val: 1.120
Bronce
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Como realizar operaciones matemáticas con datos extraídos de archivo .csv?

Publicado por kip (257 intervenciones) el 02/06/2017 02:58:16
Hola, las variables que usaras para operaciones matematicas y que vienen de un archivo ya sea csv o txt, sabiendo de son numeros, debes convertirlas en int o float, asi:

1
Pelec.append(int(linea[56]))

Prueba y nos cuentas.
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

Como realizar operaciones matemáticas con datos extraídos de archivo .csv?

Publicado por Emerson (3 intervenciones) el 02/06/2017 03:46:42
Holaa kip, gracias por responder.

Intente con lo que me sugeriste pero ahora me aparecen estos dos errores.

cuando uso int:

Pelec.append(int(linea[56]))
ValueError: invalid literal for int() with base 10: '59,752304'

y cuando uso float:

Pelec.append(float(linea[56]))
ValueError: invalid literal for float(): 59,752304
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

Como realizar operaciones matemáticas con datos extraídos de archivo .csv?

Publicado por CpA (33 intervenciones) el 02/06/2017 08:14:46
Tienes que convertir la coma decimal en un punto. Python trata los decimales con puntos, no con comas...

En tu caso podría ser:

Pelec.append(float(linea[56].replace(",",".")))

Seguramente en los otros append en los que importas números debes de hacer lo mismo, ya que lo que lees de un archivo de texto, aunque sean números, los contempla como cadena de caracteres (type str).
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Como realizar operaciones matemáticas con datos extraídos de archivo .csv?

Publicado por Emerson (3 intervenciones) el 03/06/2017 05:11:24
Buenas, CpA muchas gracias por la sugerencia, funciono 100%!!
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