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

最近,项目进行到提特征的环节,需要将特征写入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就表示写入每行。具体的笔记先记在这里,比如pandas库的使用
 

 

 

 

 

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值