一二维数据的格式化和处理
数据组织的维度
数据组织可以分为一维数据、二维数据和高位数据
一维数据:由对等关系的有序或无序数据构成,采用线性方式组织,对应于数学中的数组和集合等概念。一维数据都具有线性特点。
二维数据:也称为表格数据,由关联关系数据构成,采用表格方式组织,对应于数学中的矩阵,常见的表格都属于二维数据。
高维数据:由键值对类型的数据构成,采用对象方式组织,属于整合度更好的数据组织方式。高维数据在网络系统中十分常用,HTML、XML、JSON等都是高维数据组织的语法结构。
数据包括文件存储和程序使用两个状态。存储不同维度的数据需要适合维度特点的文件存储格式,处理不同维度数据的程序需要使用相适应的数据类型或结构。因此,对于数据处理,需要考虑存储格式以及表示和读写等两个问题。
一二维数据的存储格式
一维数据是简单的数据组织类型,有多种存储格式,常用特殊字符分隔,分隔方式如下:
- 用一个或多个空格分隔。
- 用逗号分隔(是英文逗号,不是中文逗号)
- 用其他符号或符号组合分隔,建议采用不出现在数据中的特殊符号
中国 美国 日本 德国 法国 英国 意大利
======================================================================================
中国, 美国, 日本, 德国, 法国, 英国, 意大利
======================================================================================
中国; 美国; 日本; 德国; 法国; 英国; 意大利
二维数据由多条一维数据构成,可以看成是一维数据的组合形式。
国际通用的一二维数据储存格式:CSV格式
逗号分隔数据的存储格式叫做CSV格式(Comma-Separaed Values,, 逗号分隔值),有如下格式:
- 纯文本格式,通过单一编码表示字符
- 以行为单位,开头不留空行,行之间没有空行
- 每行表示一个一维数据,多行表示二维数据
- 以逗号(英文,半角)分隔每行数据,行数据为空也要保留逗号
- 对于表格数据,可以包含或不包含列名,包含时列名防治在文件第一行
CSV格式存储的文件一般采用.csv为扩展名,可以通过Windows平台上的记事本或微软Office Excel工具打开,也可以在其他操作平台上用文本编译工具打开。
Python的csv标准库
Python提供了一个读写csv的标准库,可以通过import csv使用。csv库包含操作CSV格式最基本的功能,csv.reader()hecsv.writer()。
一二维数据对的表示和读写
一维数据写入CSV文件
fo = open("D:\\test01.csv", "w")
ls = ['北京','101.5','120.7','121.4']
fo.write(",".join(ls)+ "\n")
fo.close()
可以通过循环结构将一维数据写入文件中,形成二维数据
for row in ls:
<输出文件>.write(",".join(row) +"\n")
===================================================================================
fo = open("D:\\test01.csv", "w")
ls = [
['城市','环比','同比','定基'],
['北京','101.5','120.7','121.4'],
['上海','101.2','127.3','127.8'],
['广州','101.3','119.4','120.0']
]
for row in ls:
fo.write(",".join(row)+ "\n")
fo.close()
从CSV文件读取数据
fo = open("D:\\test01.csv","r")
ls = []
for line in fo:
line = line.replace("\n","")
ls = line.split(",")
lns = ""
for s in ls:
lns += "{}\t".format(s)
print(lns)
fo.close()
==========================================================================
城市 环比 同比 定基
北京 101.5 120.7 121.4
上海 101.2 127.3 127.8
广州 101.3 119.4 120.0