Al dividir un archivo csv usando este método:
with open(fname) as f:
for line in f:
a = line.strip().split()
El resultado esperado que obtengo es:
^{pr2}$
etc. . . existir
¿Cómo se separan estos datos en los componentes correctos (equipo, jugador, salario, posición)? existir
El conjunto de datos (xls) es el siguiente:
American League Baseball Salaries (2003)
Team Player Salary Position
New York Yankees Acevedo, Juan 9,00,000 Pitcher
New York Yankees Anderson, Jason 3,00,000 Pitcher
New York Yankees Clemens, Roger 1,01,00,000 Pitcher
New York Yankees Contreras, Jose 55,00,000 Pitcher
Puede usar zip
funciones para obtener las columnas de un archivo, o puede usar csv
módulos para leer csv
el archivo:
import csv
with open('file_.csv','rb') as f :
csvreader=csv.reader(f,delimiter=' ')
print zip(*csvreader)
Para archivos grandes, utilice itertools.izip
:
^{pr2}$
Al izip
devolver un generador, no es necesario si desea realizar un bucle sobre él list
(se usa para imprimir cosas)
También tenga en cuenta que debe usar el delimitador correcto que usé, space
por ejemplo, ¡puede cambiarlo y usar el delimitador correcto! existir
También puedes poner tus resultados en un diccionario:
^{3}$
resultado:
{'Salary': ('9,00,000', '3,00,000', '1,01,00,000', '55,00,000'), 'Player': ('Acevedo, Juan', 'Anderson, Jason', 'Clemens, Roger', 'Contreras, Jose'), 'Position': ('Pitcher', 'Pitcher', 'Pitcher', 'Pitcher'), 'Team': ('New York Yankees', 'New York Yankees', 'New York Yankees', 'New York Yankees')}
('9,00,000', '3,00,000', '1,01,00,000', '55,00,000')
Configure el csv en el siguiente formato
Team,Player,Salary,Position
"New York Yankees","Acevedo, Juan","9,00,000","Pitcher"
"New York Yankees","Anderson, Jason","3,00,000","Pitcher"
"New York Yankees","Clemens, Roger","1,01,00,000","Pitcher"
"New York Yankees","Contreras, Jose","55,00,000","Pitcher"
Luego use el código Python a continuación para obtener los valores en la lista del diccionario que sean adecuados para su posterior procesamiento.
^{pr2}$
split utiliza espacios en blanco como separador predeterminado. Si desea utilizar una cadena diferente, pásela como parámetro para dividir. En este caso, para fraccionar por COMA:
with open(fname) as f:
for line in f:
a = line.strip().split(',')