Python之二维数据的格式化和处理

1. 二维数据的表示

二维数据一般是一种表格形式,由于它的每一行具有相同格式特点,所以我们使用列表类型来表达二维数据表。

image-20210226163438700

所谓的二维列表是指它本身是一个列表,而列表中每一个元素又是一个列表。其中每一个元素代表二维数据的一行或者一列,若干行和若干列组合起来就变成了二维列表。

[ [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

posted @ 2021-02-26 16:33  狸帅  阅读(1326)  评论(0编辑  收藏  举报