python读写csv文件的心得(随笔一:简单的读写csv文件)

来源:互联网 发布:linux批量替换文件内容 编辑:程序博客网 时间:2024/06/16 10:55

最近,项目进行到提特征的环节,需要将特征写入csv文件中,然后送到分类器里训练,这需要一些基本的对csv文件的读写操作,记录下笔记,以后方便复习。

本文主要使用csv和pandas两个模块,首先肯定得导入两个模块

import csvimport pandas as pdcsv_file = '/home/hjxu/breast_project/Extract_Features_heatmap/GT.csv'
先研究下需要读取的csv文件的内容,我的csv文件的内容如下,假设为GT.csv

Test_001TumorIDCMacroTest_002TumorILCMacroTest_003NormalDCISNoneTest_004TumorIDCMicro

第一列为Test 第二列为tumor 我现在需要提取第一列和第二列,并且将第二列的Tumor变为1,Normal变为0,结果如下label.csv

namelabel Test_0011 Test_0021 Test_0030 Test_0041 

(一)利用csv这个库读取某一行

with open(csv_file, "r") as f:    reader = csv.reader(f)    row1 = [row for row in reader]print row1[2]  #row1[i]就代表是第几行
上述代码打印出row[2]代表的值,也就是第三行    ['Test_003', 'Normal', 'DCIS', 'None']

(二)利用csv这个库读取某一列

with open(csv_file, "r") as f:    reader = csv.reader(f)    column1 = [row[0] for row in reader]  # row[0]就是读取第一列print column1
代码就打印出第一列的值['Test_001', 'Test_002', 'Test_003', 'Test_004']

(三)利用csv这个库打印出某列某行

如果想打印出第一列第一行的值,直接

print column1[0]

就可以了

(四)下面该怎么写入csv文件中呢

举一个小列子,我需要读取前面提供的GT.csv文件中的第一列,并写入GT_label.csv文件的第一列。然后根据GT.csv文件中的第一列是否是Tumor,以1和0表示写入到GT_label.csv中的第二列,代码如下

csv_file_label = '/home/hjxu/breast_project/Extract_Features_heatmap/GT_ground.csv'#####读取第一列###################3with open(csv_file, "r") as f:    reader = csv.reader(f)    column1 = [row[0] for row in reader]print column1  #####读取第一列###################3#####读取第二列###################3with open(csv_file, "r") as f:    reader = csv.reader(f)    column2 = [row[1] for row in reader]#print(column0[2])#####读取第二列###################3 with open(csv_file_label,"w") as csvfile:     writer = csv.writer( csvfile)  #写入文件    writer.writerow(['name','label']) #写入文件的第一行的第一列和第二列写入name和label    for i in range(len(column2)):        if column2[i] == 'Tumor':  #column2[i] 代表第二列的第i行,这时候判断是否是Tumor,是写入1,不是写入0            label = 1;        else:            label = 0        writer.writerow([column1[i],label]) #写入文件,并且用逗号隔开表示一列
writerow就表示写入每行。具体的笔记先记在这里,以后关于读写csv文件还会更新,比如pandas库的使用


原创粉丝点击