我有一个.csv文件,其中的数据用逗号分隔,我想将其分成几列。为此,我试图将每个行元素放入列表中,然后将它们放入新文件的列中。我正在使用的代码如下:
import csv
c1 = []
c2 = []
c3 = []
with open('File.csv', 'r') as f:
reader = csv.reader(f, delimiter=',')
for row in reader:
c1.append(row[0])
c1.append(row[1])
c1.append(row[2])
由于某种原因,我只能将.csv文件的列存储在c1中。对于c2和c3,我遇到了错误。我似乎在获取当前行的第一个元素之后,“阅读器”立即跳入下一行。有人可以给我一个主意吗?也许甚至有更简单的方法可以做到这一点。谢谢
答案 0 :(得分:0)
那里有一个语法错误。 您将所有内容添加到 c1 中,而不是将值放入各种列表中。
假设 [big one!] - csv 文件每行仅包含 3 列。
我用下面的代码测试过
import csv
c1 = []
c2 = []
c3 = []
with open('csvfile.csv', 'r') as f:
reader = csv.reader(f, delimiter=',')
for row in reader:
c1.append(row[0])
c2.append(row[1])
c3.append(row[2])
print(f'column1:{c1}')
print(f'column2:{c2}')
print(f'column3:{c3}')
输出
% python3 csv_to_column.py
column1:['1', '4', '7']
column2:['2', '5', '8']
column3:['3', '6', '9']
参考 - 虚拟 csv 文件
% cat csvfile.csv
1,2,3
4,5,6
7,8,9