¿Cómo dividir datos .csv en Python?

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 zipfunciones para obtener las columnas de un archivo, o puede usar csvmódulos para leer csvel 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 izipdevolver 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é, spacepor 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(',')

 

 

おすすめ

転載: blog.csdn.net/xifenglie123321/article/details/132186699