美文网首页
一维数据和二维数据的格式化及处理

一维数据和二维数据的格式化及处理

作者: 小董不太懂 | 来源:发表于2019-08-27 20:28 被阅读0次

    一、数据组织的维度:

    1、一维数据:
    一维数据由对等关系的有序或无序数据构成,采用线性方式组织,对应于数学中数组的概念。一维数据非常常见,任何表现为序列或集合的内容都可以看作一维数据。
    2、二维数据:
    二维数据也称表格数据,有关联关系数据构成,采用二维表格方式组织,对应数学中的矩阵,常见的表格都属于二维数据。
    3、高维数据:
    高维数据由键值对类型的数据构成,采用对象方式组织,可以多层嵌套。衍生出HTML、XML、JSON等具体数据组织的语法结构。

    二、 一维数据的处理

    1、一维数据的表示:
    一维数据是最简单的数据组织类型,由于是线性结构,在python语言中主要采用列表形式表示。采用列表类型表示一维数据的时候需要注意每个数据的数据类型。
    2、一维数据的存储:
    一维数据的文件存储有多种方式,总体思路是采用特殊字符分隔各数据。常用存储方法包括如下四种:
    (1)采用空格分隔元素,例如:

    北京 上海 天津 重庆
    

    (2)采用逗号分隔元素,例如:

    北京,上海,天津,重庆
    

    (3)采用换行分隔元素,例如:

    北京
    上海
    天津
    重庆
    

    (4)采用其他特殊符号元素,例如:

    北京;上海;天津;重庆
    

    这4种方法中,逗号分隔的存储格式叫作CSV格式,即逗号分隔最通用的。存储的文件一般采用.csv为扩展名。英文逗号!
    3、一维数据的处理:
    对一维数据进行处理首先需要从CSV格式文件读入一维数据,并将其表示为列表对象。
    需要注意,最后一个元素后面有一个换行符(“\n”)。需要采用字符串的strip()方法去掉尾部的换行符,进一步使用split()方法以逗号进行分割。

    with open(r'C:\Users\董贺贺\Desktop\bb.csv','r')as f:
        text = f.read().strip('\n').split(',')
        print(text)
    #输出:['我', '是', '你', '的', '小', '可', '爱']
    
    li = ['我','是','你','爸','爸']
    with open(r'C:\Users\董贺贺\Desktop\bb.csv','w')as f:
        f.write(','.join(li)+'\n')
    

    三、二维数据的处理:

    1、二维数据的表示:
    二维数据由多个一维数据构成,可以看作是一维数据的组合形式。因此,二维数据可以采用二维列表来表示,即列表的每个元素对应二维数据的一行,这个元素本身也是列表类型,其内部各元素对应这行中的各列值。
    二维数据一般采用相同的数据类型存储数据,便于操作。为求统一,将数值统一表示为字符串形式。
    2、二维数据的存储:
    二维数据由多个一维数据构成,用CSV格式文件存储。CSV文件的每一行是一维数据,整个CSV文件是一个二维数据。
    二维数据存储为CSV格式,需要将二维列表对象写入CSV格式文件以及将CSV格式读入成二维列表对象。
    二维列表对象输出为CSV格式文件(采用遍历循环和字符串的join()方法相结合)。
    3、二维数据的处理:
    对二维数据进行处理首先需要从CSV格式文件读入二维数据,并将其表示为二维列表对象。借鉴一维数据读取方法,从CSV文件读入数据的方法。

    li = [
    ['指标', '2014年', '2015年', '2016年'],
    [' 居民消费价格指数 ', ' 102 ', ' 101.4 ', ' 102 '],
    [' 食品 ', ' 103.1 ', ' 102.3 ', ' 104.6 '],
    [' 烟酒及用品 ', '994', ' 102.1 ', ' 101.5 '],
    [' 衣着 ', ' 102.4 ', ' 102.7 ', ' 101.4 '],
    [' 家庭设备用品 ', ' 101.2 ', ' 101 ', ' 100.5 '],
    [' 医疗保健和个人用品 ', ' 101.3 ', ' 102 ', ' 101.1 '],
    [' 交通和通信 ', ' 99.9 ', ' 98.3 ', ' 98.7 '],
    [' 娱乐教育文化 ', ' 101.9 ', ' 101.4 ', ' 101.6 '],
    [' 居住 ', ' 102 ', ' 100.7 ', ' 101.6 '],
    ]
    for i in li:
        with open(r'C:\Users\董贺贺\Desktop\test_1.csv','a')as f:
            f.write(','.join(i)+'\n')
    
    li = []
    with open(r'C:\Users\董贺贺\Desktop\test_1.csv','r')as f:
    #f不仅是文件句柄还可以看作是生成器
        for i in f:
            li.append(i.strip('\n').split(','))
    print(li)
    #输出:[['指标,2014年,2015年,2016年'], [' 居民消费价格指数 , 102 , 101.4 , 102 '], [' 食品 , 103.1 , 102.3 , 104.6 '], [' 烟酒及用品 ,994, 102.1 , 101.5 '], [' 衣着 , 102.4 , 102.7 , 101.4 '], [' 家庭设备用品 , 101.2 , 101 , 100.5 '], [' 医疗保健和个人用品 , 101.3 , 102 , 101.1 '], [' 交通和通信 , 99.9 , 98.3 , 98.7 '], [' 娱乐教育文化 , 101.9 , 101.4 , 101.6 '], [' 居住 , 102 , 100.7 , 101.6 ']]
    

    或者:

    li = []
    with open(r'C:\Users\董贺贺\Desktop\test_1.csv','r')as f:
    #f不仅是文件句柄还可以看作是生成器
        for i in f:
            li.append(i.replace('\n','').split(','))
    print(li)
    

    分析每一个元素:

    li = [
    ['指标', '2014年', '2015年', '2016年'],
    [' 居民消费价格指数 ', ' 102 ', ' 101.4 ', ' 102 '],
    [' 食品 ', ' 103.1 ', ' 102.3 ', ' 104.6 '],
    [' 烟酒及用品 ', '994', ' 102.1 ', ' 101.5 '],
    [' 衣着 ', ' 102.4 ', ' 102.7 ', ' 101.4 '],
    [' 家庭设备用品 ', ' 101.2 ', ' 101 ', ' 100.5 '],
    [' 医疗保健和个人用品 ', ' 101.3 ', ' 102 ', ' 101.1 '],
    [' 交通和通信 ', ' 99.9 ', ' 98.3 ', ' 98.7 '],
    [' 娱乐教育文化 ', ' 101.9 ', ' 101.4 ', ' 101.6 '],
    [' 居住 ', ' 102 ', ' 100.7 ', ' 101.6 '],
    ]
    for i in range(len(li)):
        for j in range(len(li[i])):
            print(li[i][j])
    **********************************************************************
    指标
    2014年
    2015年
    2016年
     居民消费价格指数 
     102 
     101.4 
     102 
     食品 
     103.1 
     102.3 
     104.6 
     烟酒及用品 
    994
     102.1 
     101.5 
     衣着 
     102.4 
     102.7 
     101.4 
     家庭设备用品 
     101.2 
     101 
     100.5 
     医疗保健和个人用品 
     101.3 
     102 
     101.1 
     交通和通信 
     99.9 
     98.3 
     98.7 
     娱乐教育文化 
     101.9 
     101.4 
     101.6 
     居住 
     102 
     100.7 
     101.6 
    

    相关文章

      网友评论

          本文标题:一维数据和二维数据的格式化及处理

          本文链接:https://www.haomeiwen.com/subject/rqdyectx.html