2017-04-17 82 views
1

我已经建造使用R和输出它看起来像这样的文件特征向量矩阵:如何从一个矩阵式的数据集删除第一行和第一列

"","values","vectors.1","vectors.2","vectors.3","vectors.4","vectors.5","vectors.6" 
"1",5,0.49,0.40,-0.577,0,0.28,-0.4 
"2",4,0,-0.40,0.283,0.5,0.577,-0.4 
"3",3,-0.5,0.4,0.28,-0.5,0.28,-0. 
"4",3,0.5,-0.4,0.28,-0.5,-0.28,-0.4 
"5",1,-0.5,-0.4,-0.57,0,-0.28,-0.4 
"6",0,0,0.4,0.28,0.5,-0.57,-0.4 

我想删除的第一行和第一列提取矩阵本身并将其存储在另一个文件中(我相信您不能在打开的同一文件中进行读写操作)。因此,我尝试了以下方法,但我不知道如何继续。感谢任何帮助。

with open('./test.csv', 'r') as csvfile, open('./output.csv', 'w') as outputfile: 
    reader = csv.reader(csvfile, delimiter='\t') 
    for line in reader: 
     print line[0][3:] 

回答

1

您可以在不使用csv模块的情况下读取和写入CSV文件。您可以通过所有的线重复,除了第一行,然后写每一行的所有行,除了第一行,输出文件,像这样:

with open('./test.csv', 'r') as input_file, open('./output.csv', 'w') as output_file: 
    for index, line in enumerate(input_file): 
     if index != 0: 
      output_file.write(",".join(line.split(",")[1:])) 

让我知道如果这个作品为你。

1

您可以使用类似:

new_file = open("new.csv", "a") # opens/creates new.csv to append the results 
with open('old.csv') as f: # opens csv file for reading 
    f.next() # skips the first line 
    for line in f: # loop all lines in old.csv 
     new_file.write(",".join(line.split(",")[1:])) # append to new.csv 

new_file.close() # closes new.csv