【Python自学笔记】读写csv文件

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)

 

 

 

 

 

你可能感兴趣的:(python,常规使用,python,python,CSV读写)