常见的数据集文件格式
- xls: 是一个特有的二进制格式,其核心结构是复合文档类型的结构。(xls是Office2003版本的EXCEL表格)
- xlsx:其核心结构是 XML类型的结构,采用的是基于XML的压缩方式,使其占用的空间更小。xlsx 中最后一个x的意义就在于此。(xlsx是2007版本及以上的EXCEL表格)
- csv:格式仅保留当前工作表中单元格的值,不会保留公式、格式、图表等。(文本文件)
三者之间的区别
(1)xlsx格式是向下兼容的,可兼容xls格式。但xls格式却不兼容xlsx格式,有时候会造成文本打不开的情况。
(2)csv是文本文件,可以用记事本打开;xls/xlsx是二进制文件,只有用EXCEL才能打开。
(3)csv文件只能保存活动工作表中单元格所显示的文本和数值,数据中每一列以逗号分隔,每一行都以回车换行符结束。如果单元格中包含逗号,则该单元格中的内容以双引号引起。xls/xlsx文件各个单元格之间的分隔符为Tab。
(4)csv文件可以用记事本打开,进而转为txt格式的文件;xls/xlsx不能直接转为txt格式。若想转换,则需要另存为csv格式,然后再将csv以txt方式打开,点击另存为txt文件。
深度学习中,我们获取到数据集很多都是xls或者xlsx格式,在实际的实验中,往往要用pandas读取的数据集是csv文件。(这里按行将xls转换成csv文件)
import csv
import xlrd
outputflder = r"python深度学习/data" # 保存为csv文件的文件地址
file = r"python深度学习/data/titanic3.xls" # 要转换的初始xls文件
worksheet = xlrd.open_workbook(file, formatting_info=True)
sheet_names = worksheet.sheet_names()
print(sheet_names)
for sheet_name in sheet_names:
sheet = worksheet.sheet_by_name(sheet_name)
rows = sheet.nrows # 获取行数
cols = sheet.ncols # 获取列数,尽管没用到
rowValueList = []
for i in range(0, rows): # 遍历行
row_data = sheet.row_values(i) # 第i行数据
rowValueList.append(row_data) # 把所有行都加进去
outputfile = outputflder + '\\CXD' + sheet_name + '.csv'
with open(outputfile, "w") as csvfile:
writer = csv.writer(csvfile, lineterminator='\n')
writer.writerows(rowValueList)
print("OK")
运行结果如下: