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

二维数据的表示
-二维数据使用列表类型(二维列表)表示
-例如表格,就是二维列表,由多个列表元素组成
-可使用两层for循环遍历每个元素
-外层列表中的每个元素可以对应表格的一行,也可以是对应一列

CSV数据存储格式
CSV:comma-Separated Values
-以逗号分隔值
-国际通用的一二维数据存储格式,一般.csv扩展名
-每行一个一维数据,采用逗号分隔,无空行,不同行构成了另一个维度
-Excel和一般office软件可以打开该文件
-CSV是数据转换格式中通用的标准格式

CSV数据存储格式如下图所示:
Python-二维数据的格式化和处理_第1张图片
表格中的每一列由逗号分隔,每一行使用换行来区分
表格就是一种二维数据

CSV数据存储约定
-如果某个元素缺失,需要为缺失的元素保留一个逗号
-二维数据的表头可以作为数据存储,也可以另行存储,例如上图的城市,环比,同比,定基
-逗号为英文半角逗号,逗号与数据之间无额外空格
-如果数据中包含逗号,不同的CSV软件有不同的方式区分,例如会在数据两侧加上引号,也可以对逗号增加转意符

二维数据如何存储?
-按行存储或者按列存储都可以,具体由程序决定
-一般索引习惯:ls[row][column],默认先行后列
-一般外层列表是一行
-先行后列存储的优点是适配程序读取的习惯

二维数据的读入处理(从CSV格式的文件中读入数据)
读入数据的代码如下

fo = open(fname)                    #fo表示文件句柄,fname为文件目录
ls = []                             #生成一个二维空列表格式
for line in fo:                     #从文件中读入每一行,把每一行的信息按行存储在列表中,作为列表的一个元素
    line = line.replace("\n","")    #把每行末尾的回车替换为空字符串
    ls.append(line.split(",")        #按照逗号分隔的方式,将每行中的元素的生成列表添加到ls列表中
fo.close()                          #关闭文件

将数据写入CSV格式的文件

ls = [[],[],[]]                         #假设ls是一个二维列表
f = open(fname,'w')                     #以w写入的方式打开文件
for item in ls:                         #遍历读取每一行的元素
    f.write(','.join(item) + '\n')      #对item中的元素增加逗号进行分割,每个列表(一行)结尾处用\n转意符换行,并写入文件
f.close()                               #关闭文件

如何逐一遍历二维数据
-遍历二维数据一定要进行二层循环

ls = [[1,2],[3,4],[5,6]]                   #是一个二维列表
for row in ls:                             #遍历每一行
    for column in row:                     #遍历每一列
        print(column)                      #输出这个二维列表

以上row column line item均不为for遍历的方法,只是为了突出内容设定的一个变量名

你可能感兴趣的:(憨憨学python)