使用Python在.csv中拆分一行

时间:2017-01-24 20:37:31

标签: python csv

我坚持使用这部分代码。我无法在Python中的.csv中拆分一行。我的代码是:

import csv    
# Get movie titles
movies={}
with open(path+'/ratings.csv') as csvfile:
    reader = csv.reader(csvfile, delimiter=',')
    for row in reader:
        (Id,title)=row.split(',')[0:1]

所以我想获得电影的ID,这是第一个值,而它们是标题,这是第二个值。 .csv文件如下所示:

userId,movieId,rating,timestamp
1,31,2.5,1260759144
1,1029,3.0,1260759179
1,1061,3.0,1260759182
1,1129,2.0,1260759185
1,1172,4.0,1260759205
1,1263,2.0,1260759151
1,1287,2.0,1260759187
1,1293,2.0,1260759148
1,1339,3.5,1260759125
1,1343,2.0,1260759131
1,1371,2.5,1260759135
1,1405,1.0,1260759203
1,1953,4.0,1260759191
....

但由于某种原因,它给了我这个错误:

  

AttributeError:' list'对象没有属性' split'

当我搜索时,其他人遇到了类似的问题,但主要是因为他们是.split文件不是行,但是我分裂了行...

2 个答案:

答案 0 :(得分:3)

row已经是一个列表,这是csv模块的要点(因为您将逗号指定为分隔符,您可以省略它,因为它是默认值)

只是做:

Id,title = row[0:1]

BTW要跳过标题行,只需在next(reader)循环之前执行for

答案 1 :(得分:1)

你应该尝试用pandas读取csv,pandas库会自动将你的csv解析成列/行:

import pandas as pd

df = pd.read_csv(path_to_csv)