Python - De una columna específica, como solo la última fila de na archivo .csv

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

De una columna específica, como solo la última fila de na archivo .csv

Publicado por BMS (6 intervenciones) el 29/05/2019 18:21:17
Hola soy muy nuevo en esto de Python pero le voy cogiendo el gustillo poco a poco.
Mi duda es cómo hago para poder leer de un archivo .csv la última fila de una columna específica, por ejemplo la 4 columna.
He estado probando y he conseguido o bien leer toda la columna del archivo .csv o bien leer toda la última fila entera, pero yo quiero leer solo el último dato existente de la columna no toda la columna ni toda la fila.
Es decir si tengo:

Ciudad Coches Camiones Motos BIcicletas Patinetes
Madrid 100 30 20 50 15
Barcelona 90 45 19 60 20
Valencia 75 25 30 45 25
Sevilla 30 15 40 60 50
Zaragoza 50 40 25 50 40

Cómo hago para poder leer las motos de Zaragoza solamente.
Y si se añadiera otra ciudad como haría para poder leer una sola columna de la última fila de esa ciudad.

Por ahora he logrado leer o bien solo toda una columna o bien toda la última fila. Pero no logro conseguirlo.
Si me pudieran 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

De una columna específica, como solo la última fila de na archivo .csv

Publicado por joel (901 intervenciones) el 29/05/2019 19:27:22
Hola BMS, la única manera que se me ocurre, es recorrer todas las lineas del archivo hasta encontrar Zaragoza, y luego recorrer toda la fila hasta dar con el valor que necesito.

Como has hecho tu para leer unicamente la fila que quieres?
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: 13
Ha disminuido su posición en 9 puestos en Python (en relación al último mes)
Gráfica de Python

De una columna específica, como solo la última fila de na archivo .csv

Publicado por BMS (6 intervenciones) el 29/05/2019 21:20:44
Así por la orden print me sale toda la última fila.
------------------------------------------------------------------

1
2
3
4
with open ('Archivo.csv','r') as linea:
	lineas=linea.read().splitlines()
 
	print(lineas[-1])

Asi por la orden print me sale toda la columna.
-------------------------------------------------------------------

1
2
3
4
c=open ('Archivo.csv','r')
for columna in c:
	columna=[x.strip() for x in columna.split(';')]
	print(columna[3])



Ya me imagino que no es la forma correcta pero es lo que me ha salido por ahora.

¿Para recorrer todas las líneas hasta Zaragoza y luego recorrer toda la fila hasta el valor que quiero conseguir sabrías decirme como se hace?
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.808
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

De una columna específica, como solo la última fila de na archivo .csv

Publicado por tincopasan (1082 intervenciones) el 30/05/2019 01:51:44
hola:
varias cosas
1) para empezar tenés razón que no es la mejor forma, para eso python trae modulos como scv o pandas,etc para trabajar con este tipo de archivos
2)
1
with open ('Archivo.csv','r') as linea:
,'r' es una práctica innecesaria, python usa el modo lectura por defecto
3)
1
lineas=linea.read().splitlines()
lees losdatos como cadenas en una lista
4)
1
print(lineas[-1])
por lo tanto esto es la ultima cadena y sería mejor si fuese una lista, por lo tanto
1
print(lineas[-1].split()[3])
mostraría el índice 3 en este caso que es el de motos.
todo junto:
1
2
3
4
5
6
#-*- coding: utf -8 -*-
 
with open ('archivo.csv') as linea:
    lineas=linea.read().splitlines()
 
print(lineas[-1].split()[3])
Saludos.























.
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: 13
Ha disminuido su posición en 9 puestos en Python (en relación al último mes)
Gráfica de Python

De una columna específica, coger solo la última fila de un archivo .csv

Publicado por BMS (6 intervenciones) el 30/05/2019 08:16:16
Hola lo primero ¡Gracias tanto a "joel" como a "tincopasan" por responder!
He probado lo que me indicas "tincopasan y me da error:

Traceback (most recent call last):
File "C:\Users\Desktop\deporte.py", line 6, in <module>
print(lineas[-1].split()[3])
IndexError: list index out of range
[Finished in 0.1s with exit code 1]

Pd: aprovecho que el título del tema lo había escrito mal, aunque se pudiera entender.
Ahora: De una columna específica, coger solo la última fila de un archivo .csv
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

De una columna específica, coger solo la última fila de un archivo .csv

Publicado por joel (901 intervenciones) el 30/05/2019 08:23:55
Yo lo he probado y funciona perfectamente tanto en python 2 como en python 3

Por el error que te da, es como si lineas estuviera vació!!
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: 13
Ha disminuido su posición en 9 puestos en Python (en relación al último mes)
Gráfica de Python

De una columna específica, coger solo la última fila de un archivo .csv

Publicado por BMS (6 intervenciones) el 30/05/2019 08:35:33
La verdad que no sé a qué se debe, he probado tanto con el IDLE de python como con el programa Sublime Text 3 y en ambos me da el mismo error.
Voy a seguir mirando.
¡Gracias!

Si escribo esto:

1
2
3
4
5
f=open('Deporte.csv')
for line in f:
	line=[x.strip() for x in line.split(';')]
	programa=line[3]
	print(programa)

Me da toda la columna "Motos" tal que así:

Motos
20
19
30
40
25
[Finished in 0.1s]

Ahora lo que me falta es que la orden solo me coja el ultimo valor, en este caso el 25, pero si se añadiesen mas que cogiera solo el último de todos.
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: 13
Ha disminuido su posición en 9 puestos en Python (en relación al último mes)
Gráfica de Python

De una columna específica, coger solo la última fila de un archivo .csv

Publicado por BMS (6 intervenciones) el 30/05/2019 10:45:51
Ya he conseguido arreglarlo, lo comparto por si a alguien le puede venir bien o ayudarle de la manera que sea.

1
2
3
4
5
6
7
8
with open("Deporte.csv") as archivo:
	lineas = archivo.read().splitlines()
	#print(lineas[-1])
	ult_linea = (lineas[-1])
	#print(ult_linea)
	despiece = ult_linea.split(';')
	categoria = despiece[3]
	print(categoria)

25
[Finished in 0.1s]

¡GRACIAS!
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
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

De una columna específica, coger solo la última fila de un archivo .csv

Publicado por joel (901 intervenciones) el 30/05/2019 15:05:06
Pero, estas separando la ultima linea por ;... y en el contenido del archivo que nos mostraste en el primer post, no hay ningun ; de separación!!! solo hay espacios!!!
Por eso el código de tincospan nos funcionaba!!!
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: 13
Ha disminuido su posición en 9 puestos en Python (en relación al último mes)
Gráfica de Python

De una columna específica, coger solo la última fila de un archivo .csv

Publicado por BMS (6 intervenciones) el 30/05/2019 15:21:23
Tienes toda la razón di por hecho que se entendía ya que el archivo como tal no lo subí, y yo lo estaba abriendo con excel y me salia en plan filas y columnas. Si pruebo lo que me dices seguro que funciona, así que dos pájaros de un tiro!!!
Gracias
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