一、CSV
逗号分隔值(逗号分隔值,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本)。纯文本意味着该文件是一个字符序列,不含必须像二进制数字那样被解读的数据。CSV文件由任意数目的记录组成,记录间以某种换行符分隔;记录每条由字段组成,字段间的分隔符是其它字符或字符串,常见最的的英文逗号或制表符。通常,所有记录都有完全相同的字段序列。通常都是纯文本文件。建议使用WORDPAD或是记事本(注)来开启,再则先另存新档后用EXCEL开启,也是方法之一。
CSV文件格式的通用标准并不存在,但是在RFC 4180中有基础性的描述。使用的字符编码同样没有被指定,但是7位ASCII是最基本的通用编码。
- CSV其实就是文本文件,而并不是表格;
- .csv和.xls区别在于,.xls只能用excel打开,而且,xls和csv的编码格式也不一样,简单来说,csv可以用文本(txt)打开也可以用excle打开,而xls只能用擅长打开
- 最后,如何在CSV与XLS之间抉择呢?这里我们要弄清楚几个问题,CSV只是单纯的文本文件,同样的,也只是单纯的以文本格式存储,CSV无法生成公式,依赖,也无法保存公式,依赖!所以,如果单纯的只是存储文本格式的数据,可以直接选择使用CSV文件,读写方便,易于实现,数据可以表格化展示,这就是优点!
注意:CSV文件可以通过改变文件后缀名或者通过练成工具强制转换成的.xls文件,但是要注意乱码问题。
二、CSV文件读和写
(1)通过标准的Python的库导入CSV文件
CSV,用来处理CSV文件。 这个类库中的reader()函数用来读入CSV文件。当CSV文件被读入后,可以利用这些数据生成一个Numpy数组,用来训练算法模型。
代码语言:javascript复制from csv import readerimport numpy as npfilename='pima_data.csv' #这个文件中所有数据都是数字,并且数据中不包含文件头。with open(filename,'rt') as raw_data:readers = reader(raw_data, delimiter=',')x=list(readers)data=np.array(x).astype('float')print(data.shape)
(2)采用Numpy导入CSV文件
可以使用Munpy的loadtxt()函数导入数据。使用这个函数处理的数据没有文件头,并且所有的数据结构都是一样的,也就是说,数据类型都是一样的。
代码语言:javascript复制import numpy as npfilename='pima_data.csv'with open(filename,'rt') as raw_data:data=loadtxt(raw_data,delimiter=',')print(data.shape)
(3)采用Pandas导入CSV文件 - 机器学习项目中常用来做数据清洗与数据准备工作。推荐使用。
使用熊猫来导入文件需要使用pandas.read_csv()函数。这个函数的返回值是数据帧,可以很方便地进行下一步的处理。
代码语言:javascript复制from pandas import read_csvfilename='iris.data.csv'names=['separ-length','separ-width','petal-length','petal-width','class']dataset=read_csv(filename,names=names)print(dataset.shape)