我被这部分代码困住了。我无法在 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 文件不是该行,但我正在拆分该行...
row
已经是一个列表,这就是 csv
模块的要点(因为您将逗号指定为分隔符,您可以省略它,因为它是默认值)
就这样做:
Id,title = row[0:1]
顺便说一句,要跳过标题行,只需在
next(reader)
循环之前执行 for
即可。
您应该尝试使用 pandas 读取 csv,pandas 库会自动将您的 csv 解析为列/行:
import pandas as pd
df = pd.read_csv(path_to_csv)