Python之二维数据的格式化和处理
1. 二维数据的表示
二维数据一般是一种表格形式,由于它的每一行具有相同格式特点,所以我们使用列表类型来表达二维数据表。
所谓的二维列表是指它本身是一个列表,而列表中每一个元素又是一个列表。其中每一个元素代表二维数据的一行或者一列,若干行和若干列组合起来就变成了二维列表。
[ [3.1398, 3.1349, 3.1376],[3.1413, 3.1404, 3.1401] ]
使用两层for循环遍历每个元素
外层列表中每个元素可以对应一行,也可以对应一列
一二维数据的Python表示
一维数据:列表和集合类型
数据间有序:[3.1398, 3.1349, 3.1376]
数据间无序:{3.1398, 3.1349, 3.1376}
二维数据:列表类型
[ [3.1398, 3.1349, 3.1376],[3.1413, 3.1404, 3.1401] ]
2. CSV数据存储格式
CSV: Comma-Separated Values
-
国际通用的一二维数据存储格式,一般.csv扩展名
-
每行一个一维数据,采用逗号分隔,无空行
-
Excel和一般编辑软件都可以读入或另存为csv文件
下面是北上广深沈的房价数据构成的小表格,用它来做一个二维数据的实例:
城市 | 环比 | 同比 | 定基 |
---|---|---|---|
北京 | 101.5 | 120.7 | 121.4 |
上海 | 101.2 | 127.3 | 127.8 |
广州 | 101.3 | 119.4 | 120.0 |
深圳 | 102.0 | 140.0 | 145.5 |
沈阳 | 100.0 | 101.4 | 101.6 |
将上面的二维数据转换成 csv 格式的之后会变成由逗号分隔的形式:
城市,环比,同比,定基
北京,101.5,120.7,121.4
上海,101.2,127.3,127.8
广州,101.3,119.4,120.0
深圳,102.0,140.0,145.5
沈阳,100.0,101.4,101.6
-
如果某个元素缺失,逗号仍要保留
-
二维数据的表头可以作为数据存储,也可以另行存储
-
逗号为英文半角逗号,逗号与数据之间无额外空格
如果数据中包含逗号,数据的两侧要增加一个引号,以此来表达这个逗号不是分割元素的逗号。也可以使用一个转义符号来进行转义。
3. 二维数据的存储
-
按行存或者按列存都可以,具体由程序决定
-
一般索引习惯:
ls[row][column]
,先行后列 -
根据一般习惯,外层列表每个元素是一行,按行存
4. 二维数据的处理
二维数据的读入处理
从CSV格式的文件中读入数据
fo = open(fname)
ls = []
for line in fo:
line = line.replace("\n","")
ls.append(line.split(","))
fo.close()
二维数据的写入处理
将数据写入CSV格式的文件
ls = [[], [], []] #二维列表
f = open(fname, 'w')
for item in ls:
f.write(','.join(item) + '\n')
f.close()
二维数据的逐一处理
采用二层循环
ls = [[1,2], [3,4], [5,6]] #二维列表
for row in ls:
for column in row:
print(column)
以上内容资料均来源于中国大学MOOC网-北京理工大学Python语言程序设计课程
课程地址:https://www.icourse163.org/course/BIT-268001