如何在python中拆分.csv数据?

使用此方法拆分csv文件时:

with open(fname) as f:    
for line in f:
    a = line.strip().split()

我得到的预期输出是:

^{pr2}$

等等。。。在

如何将这些数据分成正确的部分(团队、球员、薪水、职位)?在

数据集(xls)如下:

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

可以使用zip函数来获取文件的列,也可以使用csv模块来读取csv文件:

import csv

with open('file_.csv','rb') as f :
    csvreader=csv.reader(f,delimiter=' ')
    print zip(*csvreader)

对于大文件,请使用itertools.izip

^{pr2}$

izip返回一个生成器时,如果要循环它,则不需要list(它用于打印内容)

另外请注意,您需要使用我使用的正确分隔符space例如,您可以更改它并使用正确的分隔符!在

你也可以把你的结果放在字典里:

^{3}$

结果:

{'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')

按如下格式设置csv

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"

然后使用下面的python代码在字典列表中获取适合进一步处理的值

^{pr2}$ 

split使用空白作为默认的分隔符。如果要使用其他字符串,请将其作为参数传递给split。在这种情况下,要按COMA拆分:

with open(fname) as f:    
for line in f:
    a = line.strip().split(',')

猜你喜欢

转载自blog.csdn.net/xifenglie123321/article/details/132186699