您的位置:首页 > 编程语言 > Python开发

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

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

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

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

Test_001TumorIDCMacro
Test_002TumorILCMacro
Test_003NormalDCISNone
Test_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'

#####读取第一列###################3
with open(csv_file, "r") as f:
reader = csv.reader(f)
column1 = [row[0] for row in reader]
print column1
#####读取第一列###################3

#####读取第二列###################3
with 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库的使用
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: