前言
考虑到进行机器学习、深度学习训练、预测时我们不免接触到许许多多的数据,而这些数据又以不同的格式存在(主要有csv、xls、tsv三种格式),所以本文就想来讲讲这三种格式数据的转化、阅读、处理
介绍
txt文件:txt为纯文本文件,无格式,只保存内容字符,基本跨平台,不过受字符的编码影响(因为只保存字符编码,一般没特定的编码识别标志),需要选择对应字符解码方式才能正确读取(如GBK编码的字符用UTF-8解码会乱码)
csv文件:CSV是一种简单、实用的文件格式,用于存储和表示包括文本、数值等各种类型的数据。CSV 文件通常以 .csv
作为文件扩展名。这种文件格式的一个显著特点是:文件内的数据以逗号分隔,呈现一个表格形式。CSV 文件已广泛应用于存储、传输和编辑数据
tsv文件:TSV也是一种简单、实用的文件格式,与CSV一样用于存储和表示包括文本、数值等各种类型的数据。其显著特点是文件内的数据以指标符 '\t' 分隔
xls文件:xls是一个特有的二进制格式,核心结构属于复合型文档类型,是2003版本Office Microsoft Office Excel工作表保存的默认格式。新建Excel表格保存的后缀名为“.xls”。最普通的excel格式
xlsx文件:xlsx的核心结构是XML类型结构,采用了XML的压缩方式,使其占用的空间更小,xlsx中最后一个x的意义就在于此,它是Excel2007版本的文件。新建Excel表格默认保存的后缀名为“.xlsx”
xlsm文件:xlsm同xlsx一样是属于07年版本的保存文件。只有保存为xlsm文件格式时,才能够保存写在excel文件中的宏方法,也就是VBA语言程序。它的后缀名是“.xlsm”
doc文件:是office word的文档文件,是是二进制文档,数据结构复杂且保密(微软私有格式,破解的多只能读,写容易出问题,官方word读不回去)
docx文件:是一种基于xml的zip包,开放格式,基本保证支持docx的都能通用读写。
pdf文件:是Adobe推出的文档交换格式,富文本,主要用于实现文档交换(如传阅和打印),对文字格式控制(可保证格式原样不变)和文档保护比doc好,同跨平台,属于开放标准
本文重点来讲讲标红的三种文件格式之间的转化以及文件处理(python语言)
tsv、csv、txt的区别
- 相同点: csv、tsv和txt都属于文本文件。
- 不同点:csv和tsv文件的字段间分别由逗号和tab键隔开,而txt文件则没有明确要求,可使用逗号/制表符/空格等 多种不同的符号。
文件类型 | 全称 | 字段间的分隔符 |
csv | Comma-separated values | 半角逗号(’,’) |
tsv | Tab-separated values | 制表符(Tab,’\t’) |
txt | Text File | 逗号/制表符/空格等,无固定格式 |
读取/生成 不同格式数据文件(python)
python中有一个库专门用来数据处理,这个库就是pandas。pandas能够对数据进行归一化、标准化、缺失值补全、异常值剔除等处理,当然也能够对不同的格式的数据文件进行读取、生成、转化。学会使用pandas库,将大大方便我的对数据的处理
下图为pandas库下不同格式数据文件读取、生成的函数名称(来源 官方文档):
一、读取/生成csv数据文件
import pandas as pd data=pd.read_csv('./mydata.csv') #读取csv格式文件,mydata.csv为文件名 data.to_csv('./my_new_data.csv') #生成csv格式文件,此时data中存储的是其他文件格式(例如xls)
read_csv函数默认的分隔符参数为‘,’,所以这里的read_csv('./mydata.csv')完整写法为read_csv('./mydata.csv',sep=',')。如果有需要我们也可以修改sep中的分隔符符号,去实现不同分隔符下数据的读取
read_csv函数读取后返回对象为DataFrame类型
二、读取/生成txt数据文件
# 读取txt文件 import pandas as pd # 调用read_table函数读取txt文件 data = pd.read_table("./mydatat.txt") # 调用read_csv函数读取txt文件 df = pd.read_csv("./my_new_data.txt",sep=',')
这里利用read_csv函数来读取txt文件时,这意味着txt文件中数据的分隔符需要是‘,’,否则将无法正确的解析数据
三、读取/生成tsv数据文件
import pandas as pd # 读取TSV文件 data = pd.read_csv('data.tsv', sep='\t')
read_csv()函数通常来读取CSV文件,所以默认情况下,它会将逗号作为分隔符。为了读取TSV文件,我们需要使用read_csv()函数,并将分隔符参数设置为'\t'
四、读取/生成xls数据文件
import pandas as pd #读取xlsx文件转化为DataFrame格式存储在df中 df=pd.read_excel('file.xlsx') #将DataFrame对象转化为xlsx文件格式 df.to_excel('new_file.xlsx')
这两个函数同样可以生成xls文件。xls文件相比于xlsx文件安全系数更好,因为其是用二进制存储的,而xlsx文件是用xml格式存储的,xml格式是为了传输的
不同文件格式转化
一个思路:先将待转化文件格式读取为DataFrame格式,然后再利用DataFrame格式的to_函数转成不同格式文件
总结
python中的pandas库是数据处理的一个利器,如果遇到数据处理的问题都可以利用pandas库来处理