https://blog.csdn.net/atnanyang/article/details/70832257
本文主要使用csv和pandas两个模块,首先肯定得导入两个模块
import csv
import pandas as pd
csv文件的内容如下,假设为GT.csv
Test_001 | Tumor | IDC1 | Macro |
Test_002 | Tumor2 | IDC2 | Macro |
Test_003 | Tumor3 | IDC3 | Macro |
Test_004 | Tumor4 | IDC4 | Macro |
import csv
import csv
import pandas as pd
#利用csv这个库读取某一行
csv_file = 'F:/Workspace/GT.csv'
with open(csv_file, "r") as f:
reader = csv.reader(f)
row1 = [row for row in reader]
print (row1[2]) #row1[i]就代表是第几行
#利用csv这个库读取某一列
with open(csv_file, "r") as f:
reader = csv.reader(f)
column1 = [row[0] for row in reader] # row[0]就是读取第一列
print (column1)
#利用csv这个库打印出某列某行
print(column1[0])
E:\Anaconda3\python.exe F:/Workspace/PycharmProjects/test.py
['Test_003', 'Tumor3', 'IDC3', 'Macro']
['Test_001', 'Test_002', 'Test_003', 'Test_004', 'Test_005']
Test_001
Process finished with exit code 0
import csv
import pandas as pd
csv_file = 'F:/Workspace/GT.csv'
csv_file_label = 'F:/Workspace/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]) # 写入文件,并且用逗号隔开表示一列
CSV(Comma-Separated Values)格式的文件是指以纯文本形式存储的表格数据,这意味着不能简单的使用Excel表格工具进行处理,而且Excel表格处理的数据量十分有限,而使用Pandas来处理数据量巨大的CSV文件就容易的多了。
Pandas读取本地CSV文件并设置Dataframe(数据格式)
1)读取csv文件
data =pandas.read_csv(‘test.csv’) //返回的是DataFrame变量
first_rows = data.head(n) //返回前n条数据,默认返回5条
cols = data.columns //返回全部列名
dimensison = data.shape //返回数据的格式,数组,(行数,列数)
data.values //返回底层的numpy数据
import pandas as pd
import numpy as np
csv_file = 'F:/Workspace/GT.csv'
df=pd.read_csv(csv_file,header=None,sep=' ') #filename可以直接从盘符开始,标明每一级的文件夹直到csv文件,header=None表示头部为空,sep=' '表示数据间使用空格作为分隔符,如果分隔符是逗号,只需换成 ‘,’即可。
print(df.head())
print(df.tail())
#作为示例,输出CSV文件的前5行和最后5行,这是pandas默认的输出5行,可以根据需要自己设定输出几行的值
E:\Anaconda3\python.exe F:/Workspace/PycharmProjects/test.py
0
0 Test_001,Tumor1,IDC1,Macro1
1 Test_002,Tumor2,IDC2,Macro2
2 Test_003,Tumor3,IDC3,Macro3
3 Test_004,Tumor4,IDC4,Macro4
4 Test_005,Tumor5,IDC5,Macro5
0
6 Test_007,Tumor7,IDC7,Macro7
7 Test_008,Tumor8,IDC8,Macro8
8 Test_009,Tumor9,IDC9,Macro9
9 Test_010,Tumor10,IDC10,Macro10
10 Test_011,Tumor11,IDC11,Macro11
Process finished with exit code 0
显示了我本地数据的前5行与最后5行,
使用pandas直接读取本地的csv文件后,csv文件的列索引默认为从0开始的数字,重定义列索引的语句如下:
import pandas as pd
import numpy as np
csv_file = 'F:/Workspace/GT.csv'
df2=pd.read_csv(csv_file,header=None,sep=' ',names=["week",'month','date'])
print(df2)