0

也许我只是挑剔,但作为一个尝试转换的 Matlab 用户,我在导入数据时确实遇到了麻烦。读取 CSV 时,我似乎无法读取超过两列的数据。这是我正在使用的编码

x,y = [],[]
csv_reader = csv.reader(open('Data.csv'))
for line in csv_reader:
    x.append(line[0])
    y.append(line[1])

如果我使用超过 2 列的 Data.csv,我似乎无法从第 3 列及更高的列返回任何内容,因此我必须读取几个 csv 文件以获取我想要的数据。

我还想指出我只使用 CSV 格式,因为我不知道如何导入其他任何内容。同样,作为以前的 Matlab 用户,我更喜欢将电子表格复制到 .txt 文件中并导入。对此的任何指导也将不胜感激。非常感谢

4

1 回答 1

1

只要我不断添加变量,即 z=[] 和 z.append(line[2]) 等,这对我来说效果很好……也许我误解了这些问题?

import csv
x,y,z = [],[],[]
csv_reader = csv.reader(open('Data.csv'))
for line in csv_reader:
    x.append(line[0])
    y.append(line[1])
    z.append(line[2])

如果您从电子表格复制并粘贴到文本文件,您可以打开('Data.txt')并用 \t 分割每一行,如果这是列之间的分隔符。

xx,yy,zz = [],[],[]
fromtextfile = open('Data.txt')
#(append each list) for 
 #item in the line, split by tabs, into a list for line in the file
[(xx.append(item[0]),yy.append(item[1]),zz.append(item[2])) \
 for item in [line[:-1].split('\t') for line in fromtextfile]]

#or

xxx,yyy,zzz = [],[],[]
fromtextfile = open('Data.txt')
temp = []
for line in fromtextfile:
    temp.append(line[:-1])
for item in temp:
    templist = item.split('\t')
    xxx.append(templist[0])
    yyy.append(templist[1])
    zzz.append(templist[2])

fromtextfile.close()
于 2013-07-30T18:31:04.323 回答