【发布时间】:2018-03-25 17:52:52
【问题描述】:
我有一个类似“data.csv”的文件
ColA, ColB, ColC
1,2,3
4,5,6
7,8,9
我想打开文件列并将其读入列表中,省略该列表的第一个条目,例如
dataA = [1,4,7]
dataB = [2,5,8]
dataC = [3,6,9]
实际上有超过 3 列并且列表很长,这只是格式的一个示例。我试过了:
csv_file = open('data.csv','rb')
csv_array = []
for row in csv.reader(csv_file, delimiter=','):
csv_array.append(row)
然后我会将csv_array 的每个索引分配给一个列表,例如
dataA = [int(i) for i in csv_array[0]]
但我遇到了错误:
_csv.Error: new-line character seen in unquoted field - do you need to open the file in universal-newline mode?
另外,将数据保存到几个列表中感觉就像是一种非常冗长的方式......
谢谢!
编辑:
我是这样解决的:
import pandas as pd
df = pd.read_csv('data.csv', names = ['ColA','ColB','ColC']
dataA = map(int,(df.ColA.tolist())[1:3])
然后重复其余列。
【问题讨论】:
-
如果您不介意使用导入,我建议您使用 tablib,您可以在这里找到:docs.python-tablib.org/en/master