数据处理方法、装置及设备、可读介质
技术领域
本申请涉及计算机技术领域,尤其涉及数据处理方法、装置及设备、可读介质。
背景技术
在数据集处理过程中,经常会遇到多个数据序列组成的数据集,这种数据集中经常出现如下情况:各数据序列所含数据元素的数值、单位、类型、名称等属性不完全相同。例如:涉及贷款信息的数据集A,包括若干数据序列a、b、c、d等等,为了便于理解说明,示出a、b、c、d四个数据序列所含的数据元素:a={2016/1/1到2016/3/1;2档;3期;0到100元,费率1%},b={2016/1/1到2016/3/1;2档;3期;100到100000元,费率2%},c={2016/3/1到2016/5/1;3档;3期;0到100元,费率1%},d={2016/3/1到2016/5/1;3档;6期;0到100元,费率1%}。
其中,所示出的每个数据序列包括四项数据元素,四项数据元素的类型依次为:连续型(或范围型)、离散型(或枚举型)、离散型、连续嵌套型(或范围包含型),四项数据元素的名称依次为:时间、档位、期数、金额费率。
由以上所列举的数据集可知:多个数据序列组成的数据集中不同属性的数据元素难以直接合并,因此,此类数据集所含数据元素繁杂、占用空间大。
发明内容
有鉴于此,本申请提供一种数据处理方法、装置及设备、可读介质。
具体地,本申请是通过如下技术方案实现的:
根据本申请实施例的第一方面,提供一种数据处理方法,包括以下步骤:
获取由至少两个数据序列组成的数据集,其中,每个数据序列的各项数据元素分别对应不同的属性,不同数据序列中存在同属性的数据元素;
从组成所述数据集的数据序列中确定一组同属性的数据元素为遍历元素;
遍历组成所述数据集的每个数据序列中除遍历元素外的剩余数据元素,将剩余数据元素相同的数据序列合并为一个数据序列,以使合并后的数据序列包括一项所述剩余数据元素、以及被合并的数据序列的遍历元素;
确定合并后的数据序列与未经合并的数据序列为组成所述数据集的数据序列。
在一个实施例中,所述从组成所述数据集的数据序列中确定一组同属性的数据元素为遍历元素前,所述方法包括以下步骤:
如果任一数据序列的元素数目少于其他数据序列的元素数目,通过比较所述任一数据序列与其他数据序列,确定所述任一数据序列所缺少的数据元素的属性;
在所述任一数据序列内添加所确定的属性所对应预设数据元素。
在一个实施例中,所述从组成所述数据集的数据序列中确定一组同属性的数据元素为遍历元素前,所述方法包括以下步骤:
识别各数据序列中各数据元素的数据类型,所述数据类型包括离散型、连续型、以及连续嵌套型;
在各数据序列中,保持同类型的各数据元素之间的原有次序的同时,将离散型的数据元素整体调整到剩余类型的数据元素之前。
在一个实施例中,所述从组成所述数据集的数据序列中确定一组同属性的数据元素为遍历元素前,所述方法包括以下步骤:
将连续型以及连续嵌套型的数据元素分别转换为相应格式的离散型的数据元素。
在一个实施例中,所述数据序列由以下数据元素组成:
支付日期、支付金额、付款账户、收款账户、支付产品。
在一个实施例中,所述确定合并后的数据序列与未经合并的数据序列为组成所述数据集的数据序列后,所述方法还包括以下步骤:
从组成所述数据集的数据序列中确定另一组同属性的数据元素为迭代元素;
基于迭代元素执行如下第一迭代过程:
遍历组成所述数据集的每个数据序列中除迭代元素外的剩余数据元素,将剩余数据元素相同的数据序列合并为一个数据序列,以使合并后的数据序列包括一项所述剩余数据元素、以及被合并的数据序列的迭代元素;
确定合并后的数据序列与未经合并的数据序列为组成所述数据集的数据序列;
如果任一数据序列存在未做过迭代元素的数据元素,从组成所述数据集的数据序列中确定另一组同属性的数据元素为迭代元素,并返回执行所述第一迭代过程;
如果所有数据序列中均不存在未做过迭代元素的数据元素,确定本次迭代过程所确定的数据集为压缩数据集。
在一个实施例中,所述确定本次迭代过程所确定的数据集为压缩数据集后,所述方法包括以下步骤:
将所述相应格式的离散型的数据元素还原为原来的连续型或连续嵌套型的数据元素。
在一个实施例中,确定本次迭代过程所确定的数据集为压缩数据集后,还包括步骤:
从组成所述压缩数据集的数据序列中确定一组同属性的数据元素为合并元素;
基于合并元素执行如下第二迭代过程:
遍历各数据序列的合并元素,将合并元素相同的数据序列合并为一个数据序列,以使合并后的数据序列包括一项所述合并元素、以及被合并的数据序列除所述合并元素外的剩余数据元素;
确定合并后的数据序列与未经合并的数据序列为组成所述压缩数据集的数据序列;
如果任一数据序列存在未做过合并元素的数据元素,从组成所述压缩数据集的数据序列中确定另一组同属性的数据元素为合并元素,并返回执行所述第二迭代过程;
如果所有数据序列中均不存在未做过合并元素的数据元素,确定本次迭代过程所确定的压缩数据集为最终的压缩数据集。
在一个实施例中,所述方法还包括以下步骤:
将所述压缩数据集存储到对应存储区域;或,
将所述压缩数据集显示到对应显示区域;或,
将所述压缩数据集传输到对应目的地址。
根据本申请实施例的第二方面,提供一种电子设备,包括:
处理器;
存储处理器可执行指令的存储器;
其中,所述处理器耦合于所述存储器,用于读取所述存储器存储的程序指令,并作为响应,执行如下操作:
获取由至少两个数据序列组成的数据集,其中,每个数据序列的各项数据元素分别对应不同的属性,不同数据序列中存在同属性的数据元素;
从组成所述数据集的数据序列中确定一组同属性的数据元素为遍历元素;
遍历组成所述数据集的每个数据序列中除遍历元素外的剩余数据元素,将剩余数据元素相同的数据序列合并为一个数据序列,以使合并后的数据序列包括一项所述剩余数据元素、以及被合并的数据序列的遍历元素;
确定合并后的数据序列与未经合并的数据序列为组成所述数据集的数据序列。
根据本申请实施例的第三方面,提供一种数据处理装置,包括:
数据集获取模块,用于获取由至少两个数据序列组成的数据集,其中,每个数据序列的各项数据元素分别对应不同的属性,不同数据序列中存在同属性的数据元素;
遍历元素确定模块,用于从组成所述数据集的数据序列中确定一组同属性的数据元素为遍历元素;
序列合并模块,用于遍历组成所述数据集的每个数据序列中除遍历元素外的剩余数据元素,将剩余数据元素相同的数据序列合并为一个数据序列,以使合并后的数据序列包括一项所述剩余数据元素、以及被合并的数据序列的遍历元素;
数据集重组模块,用于确定合并后的数据序列与未经合并的数据序列为组成所述数据集的数据序列。
在一个实施例中,在所述遍历元素确定模块从组成所述数据集的数据序列中确定一组同属性的数据元素为遍历元素前,所述装置还包括:
序列比较模块,用于在任一数据序列的元素数目少于其他数据序列的元素数目时,通过比较所述任一数据序列与其他数据序列,确定所述任一数据序列所缺少的数据元素的属性;
元素添加模块,用于在所述任一数据序列内添加所确定的属性所对应预设数据元素。
在一个实施例中,在所述遍历元素确定模块从组成所述数据集的数据序列中确定一组同属性的数据元素为遍历元素前,所述装置还包括:
数据类型识别模块,用于识别各数据序列中各数据元素的数据类型,所述数据类型包括离散型、连续型、以及连续嵌套型;
元素顺序调整模块,用于在各数据序列中,保持同类型的各数据元素之间的原有次序的同时,将离散型的数据元素整体调整到剩余类型的数据元素之前。
在一个实施例中,在所述遍历元素确定模块从组成所述数据集的数据序列中确定一组同属性的数据元素为遍历元素前,所述装置还包括:
元素类型转换模块,用于将连续型以及连续嵌套型的数据元素分别转换为相应格式的离散型的数据元素。
在一个实施例中,所述数据序列由以下数据元素组成:
支付日期、支付金额、付款账户、收款账户、支付产品。
在一个实施例中,在所述数据集重组模块确定合并后的数据序列与未经合并的数据序列为组成所述数据集的数据序列后,所述装置还包括:
迭代元素确定模块,用于从组成所述数据集的数据序列中确定另一组同属性的数据元素为迭代元素;
第一迭代模块,用于基于迭代元素执行第一迭代过程:
所述第一迭代模块包括:
第一遍历模块,用于遍历组成所述数据集的每个数据序列中除迭代元素外的剩余数据元素,将剩余数据元素相同的数据序列合并为一个数据序列,以使合并后的数据序列包括一项所述剩余数据元素、以及被合并的数据序列的迭代元素;
第一确定模块,用于确定合并后的数据序列与未经合并的数据序列为组成所述数据集的数据序列;
第一迭代返回模块,用于在任一数据序列存在未做过迭代元素的数据元素时,从组成所述数据集的数据序列中确定另一组同属性的数据元素为迭代元素,并返回执行所述第一迭代过程;
第一压缩数据集模块,用于在所有数据序列中均不存在未做过迭代元素的数据元素时,确定本次迭代过程所确定的数据集为压缩数据集。
在一个实施例中,在所述第一压缩数据集模块确定本次迭代过程所确定的数据集为压缩数据集后,所述装置还包括:
元素类型还原模块,用于将所述相应格式的离散型的数据元素还原为原来的连续型或连续嵌套型的数据元素。
在一个实施例中,在所述第一压缩数据集模块确定本次迭代过程所确定的数据集为压缩数据集后,所述装置还包括:
合并元素确定模块,用于从组成所述压缩数据集的数据序列中确定一组同属性的数据元素为合并元素;
第二迭代模块,用于基于合并元素执行第二迭代过程:
所以第二迭代模块包括:
第二遍历模块,用于遍历各数据序列的合并元素,将合并元素相同的数据序列合并为一个数据序列,以使合并后的数据序列包括一项所述合并元素、以及被合并的数据序列除所述合并元素外的剩余数据元素;
第二确定模块,用于确定合并后的数据序列与未经合并的数据序列为组成所述压缩数据集的数据序列;
第二迭代返回模块,用于在任一数据序列存在未做过合并元素的数据元素时,从组成所述压缩数据集的数据序列中确定另一组同属性的数据元素为合并元素,并返回执行所述第二迭代过程;
第二压缩数据集模块,用于在所有数据序列中均不存在未做过合并元素的数据元素时,确定本次迭代过程所确定的压缩数据集为最终的压缩数据集。
在一个实施例中,所述装置还包括:
数据集存储模块,用于将所述压缩数据集存储到对应存储区域;或,
数据集显示模块,用于将所述压缩数据集显示到对应显示区域;或,
数据集传输模块,用于将所述压缩数据集传输到对应目的地址。
根据本申请实施例的第四方面,提供一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得终端设备执行以上所述的方法。
本申请提供的实施例,从组成数据集的数据序列中确定一组同属性的数据元素为迭代元素,再遍历组成所述数据集的每个数据序列中除迭代元素外的剩余数据元素,将剩余数据元素相同的数据序列合并为一个数据序列,可以使合并后的数据序列包括一项所述剩余数据元素、以及被合并的数据序列的迭代元素。合并数据序列后,组成数据集的数据序列所含的数据元素的总量减少了,因此,能够有效降低数据集所占空间。进而能在存储、展示或传输所述数据集时降低对存储区域、网络带宽、页面空间的占用,提高数据处理效率和用户体验。
附图说明
图1是本申请数据处理方法的一个实施例流程图;
图2是本申请数据处理方法的另一个实施例的部分流程图;
图3是本申请数据处理装置的一个实施例框图;
图4是本申请数据处理装置的另一个实施例的部分框图;
图5是本申请数据处理装置的硬件结构图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
图1是本申请数据处理方法的一个实施例流程图,该实施例可以包括以下步骤101-104:
步骤101:获取由至少两个数据序列组成的数据集,其中,每个数据序列的各项数据元素分别对应不同的属性,不同数据序列中存在同属性的数据元素。
本申请实施例中,数据集由多个数据序列,可以表格形式存在,每个数据序列为表格中的一列或一行,数据集也可以其他形式存在,本申请实施例对此不做限制。此外,数据集所含的各数据序列涉及相同领域的数据,所涉及的领域可以包括社会生产和社会生活的各个领域,例如:信贷、理财、转账、保险、支付等领域中的任一领域。如涉及支付领域的数据时,每个数据序列所含的数据元素可以是:支付日期、支付金额、付款账户、收款账户、支付产品等;如涉及贷款领域的数据时,每个数据序列所含的数据元素可以是:贷款档位、贷款期数、贷款时间、贷款金额费率等。
本申请提供了以下几种获得数据集的途径,在此仅作为示例说明,并非排除其他获取途径:
一、直接接收用户输入的各数据序列;
二、从数据库调取对应数据集存储的各数据序列。
获取到数据集后,通过查阅数据集所含的各数据序列的数据元素的:数值、单位、类型、名称等属性,可以快速挑选出各数据序列中同属性的数据元素。
步骤102:从组成所述数据集的数据序列中确定一组同属性的数据元素为遍历元素。
本申请实施例,所确定的一组同属性的数据元素包括:组成数据集的每个数据序列内对应属性的数据元素,而该属性可以是数据集所含的任一数据元素对应的属性。
为了便于更好的合并数据集所含的数据序列,在确定遍历元素时,可以通过比较各数据序列中同属性的数据元素,将差别最大的一组数据元素确定为遍历元素,以便合并除遍历元素外的剩余数据元素。
在某些例子中,如果在确定遍历元素后,组成数据集的某些数据序列的元素数目少于其他数据序列的元素数目,那么在比较各数据序列的剩余数据元素时,由于这些缺少数据元素的数据序列,可能会漏掉可以合并的数据序列,因此,可以在组成所述数据集的数据序列中确定一组同属性的数据元素为遍历元素前,先通过比较那些缺少数据元素的数据序列与其他数据序列,确定这些数据序列所缺少的数据元素的属性,并在这些数据序列内添加所确定的属性所对应预设数据元素。如果该数据元素为数字,那么该预设数据元素与其他数据序列中同属性的数据元素的具体数值可以不同。
在其他例子中,各数据序列所含数据元素的数据类型不完全相同,可能有些数据元素是离散型数据、有些数据元素是连续型数据、剩余一些数据元素又是连续嵌套型数据,为了便于比较各数据序列所含的数据元素,可以将同类型的数据元素排列一起。因此,本申请实施例可以在从组成所述数据集的数据序列中确定一组同属性的数据元素为遍历元素前,识别各数据序列中各数据元素的数据类型,所述数据类型包括离散型、连续型、以及连续嵌套型,在各数据序列中,保持同类型的各数据元素之间的原有次序的同时,将离散型的数据元素整体调整到剩余类型的数据元素之前。这里提到的连续嵌套型的数据指一种连续类型的数据包含另一种类型的数据。
步骤103:遍历组成所述数据集的每个数据序列中除遍历元素外的剩余数据元素,将剩余数据元素相同的数据序列合并为一个数据序列,以使合并后的数据序列包括一项所述剩余数据元素、以及被合并的数据序列的遍历元素。
本申请实施例中,涉及的遍历可以指访问数据集的数据元素,遍历每个数据序列中除遍历元素外的剩余数据元素时,查找剩余数据元素相同的数据序列,然后根据查找结果,将剩余数据元素相同的数据序列合并为一个数据序列,合并后的数据序列包括被合并的任一数据序列的剩余数据元素、以及被合并的各序列的迭代元素,其余被合并的数据序列的剩余数据元素可以直接清除,这样使得合并后的单个数据序列中没有重复的同属性数据元素,进而降低数据集所占空间。
如果数据集以表格形式存在,在将剩余数据元素相同的数据序列合并为一个数据序列,可以合并各数据序列所在的单元格,然后删除重复的数据元素。
在遍历组成所述数据集的每个数据序列中除遍历元素外的剩余数据元素时,为了便于查找剩余数据元素相同的数据序列,可以在从组成所述数据集的数据序列中确定一组同属性的数据元素为遍历元素前,将连续型以及连续嵌套型的数据元素分别转换为相应格式的离散型的数据元素,这样在遍历各数据序列时,之比较数字符号就行,无需比较文字等。
步骤104:确定合并后的数据序列与未经合并的数据序列为组成所述数据集的数据序列。
本申请实施例中,未经合并的数据序列指:剩余数据元素与其他数据序列的剩余数据元素不完全相同的数据序列,将这些数据序列与合并后的数据序列更新为组成数据集的数据序列后,可以将数据集存储到对应存储区域以便后续处理,或者将数据集显示到对应显示区域以便用户查阅,或者将所述压缩数据集传输到对应目的地址以便其他***使用。
在某些场景中,可以通过一次遍历对剩余数据元素相同的数据序列进行合并,删除重复的剩余数据元素,将数据集所含数据元素的数目压缩到最少。而在其他场景中,仅通过一次遍历,删除的数据元素有限,为了进一步降低数据集所占空间的大小,可以继续合并数据集的数据序列,减小数据集所占空间,具体的实现过程可参见图2,图2是本申请数据处理方法的另一个实施例的部分流程图,该实施例的数据处理方法在确定合并后的数据序列与未经合并的数据序列为组成所述数据集的数据序列后,还可以包括以下步骤201-206:
步骤201:从组成所述数据集的数据序列中确定另一组同属性的数据元素为迭代元素。
步骤202:基于迭代元素执行如下第一迭代过程:
步骤203:遍历组成所述数据集的每个数据序列中除迭代元素外的剩余数据元素,将剩余数据元素相同的数据序列合并为一个数据序列,以使合并后的数据序列包括一项所述剩余数据元素、以及被合并的数据序列的迭代元素。
步骤204:确定合并后的数据序列与未经合并的数据序列为组成所述数据集的数据序列。
步骤205:如果任一数据序列存在未做过迭代元素的数据元素,从组成所述数据集的数据序列中确定另一组同属性的数据元素为迭代元素,并返回执行所述第一迭代过程。
步骤206:如果所有数据序列中均不存在未做过迭代元素的数据元素,确定本次迭代过程所确定的数据集为压缩数据集。
本申请实施例,通过对数据集的多次遍历、合并,可以有效的减少数据集中重复的数据元素,进一步降低数据集所占空间。如果在遍历数据集之前,曾经将连续型以及连续嵌套型的数据元素分别转换为相应格式的离散型的数据元素,为了便于用户查阅数据集,了解数据集所含数据元素的具体含义,在确定压缩数据集后,可以将所述相应格式的离散型的数据元素还原为原来的连续型或连续嵌套型的数据元素。这里提到的相应格式的离散型的数据元素指:之前所转换的连续型以及连续嵌套型的数据元素。
在某些例子中,在确定压缩数据集后,为了进一步降低数据集内重复的数据元素,降低其所占空间,可以遍历数据集内同属性的数据元素,并删除属性相同的数据元素,合并对应的数据序列,具体实现过程可参见以下操作:
从组成所述压缩数据集的数据序列中确定一组同属性的数据元素为合并元素;
基于合并元素执行如下第二迭代过程:
遍历各数据序列的合并元素,将合并元素相同的数据序列合并为一个数据序列,以使合并后的数据序列包括一项所述合并元素、以及被合并的数据序列除所述合并元素外的剩余数据元素。
确定合并后的数据序列与未经合并的数据序列为组成所述压缩数据集的数据序列。
如果任一数据序列存在未做过合并元素的数据元素,从组成所述压缩数据集的数据序列中确定另一组同属性的数据元素为合并元素,并返回执行所述第二迭代过程。
如果所有数据序列中均不存在未做过合并元素的数据元素,确定本次迭代过程所确定的压缩数据集为最终的压缩数据集。
本例子在确定最终的压缩数据集后,可以将将所述压缩数据集存储到对应存储区域;或,将所述压缩数据集显示到对应显示区域;或,将所述压缩数据集传输到对应目的地址。
这样相对于原来未经合并的数据集,实际应用时可以节约数据集的存储空间,降低存储成本。节约展示页面的空间的同时,可以在用户查阅或操作压缩数据集时,提高用户的查阅速度、降低用户操作出错率和提高用户体验。还可以在完成数据传输的同时降低传输数据集所占用的网络带宽。
以下以表一所示的涉及贷款领域的数据的数据集为例,阐述一实例。
表一:
时间 |
档位 |
期数 |
金额费率 |
2016/1/1到2016/3/1 |
|
3期 |
0到100元,费率1% |
2016/1/1到2016/3/1 |
2档 |
3期 |
0到100元,费率1% |
2016/1/1到2016/3/1 |
|
3期 |
100到100000元,费率2% |
2016/1/1到2016/3/1 |
2档 |
3期 |
100到100000元,费率2% |
2016/3/1到2016/5/1 |
3档 |
3期 |
0到100元,费率1% |
2016/3/1到2016/5/1 |
3档 |
6期 |
0到100元,费率1% |
2016/3/1到2016/5/1 |
|
3期 |
0到100000元,费率3% |
2016/3/1到2016/5/1 |
2档 |
3期 |
0到100000元,费率3% |
2016/3/1到2016/5/1 |
3档 |
3期 |
1000到100000元,费率3% |
2016/3/1到2016/5/1 |
3档 |
6期 |
1000到100000元,费率3% |
2016/3/1到2016/5/1 |
3档 |
3期 |
100到1000元,费率2% |
2016/3/1到2016/5/1 |
3档 |
6期 |
100到1000元,费率2% |
针对表一所示的数据集,一行表格内的数据元素组成一个数据序列,在合并数据序列前,可以先在缺少数据元素的数据序列内填充预设的数据元素,然后先识别数据类型,区分离散型、连续型、连续嵌套型的数据元素,将离散型数据元素放前面,剩余类型的数据元素放在后面,再将连续型和连续嵌套型的数据元素转换为离散型的数据元素,并消除各数据元素所含的文字信息将各数据元素转换为字符串,经上述处理后的数据集如表二所示,添加的预设数据元素为0,转换后的数据元素仅含有数字和字符:
表二:
档位 |
期数 |
时间 |
金额费率 |
0 |
3 |
2016/1/1-2016/3/1 |
0-100-1 |
2 |
3 |
2016/1/1-2016/3/1 |
0-100-1 |
0 |
3 |
2016/1/1-2016/3/1 |
100-100000-2 |
2 |
3 |
2016/1/1-2016/3/1 |
100-100000-2 |
3 |
3 |
2016/3/1-2016/5/1 |
0-100-1 |
3 |
6 |
2016/3/1-2016/5/1 |
0-100-1 |
0 |
3 |
2016/3/1-2016/5/1 |
0-100000-3 |
2 |
3 |
2016/3/1-2016/5/1 |
0-100000-3 |
3 |
3 |
2016/3/1-2016/5/1 |
1000-100000-3 |
3 |
6 |
2016/3/1-2016/5/1 |
1000-100000-3 |
3 |
3 |
2016/3/1-2016/5/1 |
100-1000-2 |
3 |
6 |
2016/3/1-2016/5/1 |
100-1000-2 |
在其他例子中,在处理数据时无需消除各数据元素所含的文字信息,可以统一同属性的一组数据元素为统一格式,便于比较数据元素即可。
参阅表二可知:对应期数的数据元素有(3,6),对应档位的数据元素有(0,2,3),对应时间的数据元素有(2016/1/1-2016/3/1,2016/3/1-2016/5/1),对应金额费率的数据元素有(0-100-1,100-100000-1,0-100000-3,1000-100000-3,10-1000-2),如果按照全量的笛卡尔积计算,表二数据集所含数据元素的数目为2*3*2*5=60项,但实际的数据元素只有12项,是全量笛卡尔积的子集。
为了消除数据集所含的重复数据元素,可以先以档位在表二所示的各数据序列中所对应的数据元素为迭代元素,遍历组成表二所示数据集的每个数据序列中除迭代元素外的剩余数据元素,将剩余数据元素相同的数据序列合并为一个数据序列,确定合并后的数据序列与未经合并的数据序列为组成所述数据集的数据序列,如表三所示:
表三:
档位 |
期数 |
时间 |
金额费率 |
0,2 |
3 |
2016/1/1-2016/3/1 |
0-100-1 |
0,2 |
3 |
2016/1/1-2016/3/1 |
100-100000-2 |
3 |
3 |
2016/3/1-2016/5/1 |
0-100-1 |
3 |
6 |
2016/3/1-2016/5/1 |
0-100-1 |
0,2 |
3 |
2016/3/1-2016/5/1 |
0-100000-3 |
3 |
3 |
2016/3/1-2016/5/1 |
1000-100000-3 |
3 |
6 |
2016/3/1-2016/5/1 |
1000-100000-3 |
3 |
3 |
2016/3/1-2016/5/1 |
100-1000-2 |
3 |
6 |
2016/3/1-2016/5/1 |
100-1000-2 |
然后以期数在表三所示的各数据序列中所对应的数据元素为迭代元素,遍历组成表三所示数据集的每个数据序列中除迭代元素外的剩余数据元素,将剩余数据元素相同的数据序列合并为一个数据序列,确定合并后的数据序列与未经合并的数据序列为组成所述数据集的数据序列,如表四所示:
表四:
档位 |
期数 |
时间 |
金额费率 |
0,2 |
3 |
2016/1/1-2016/3/1 |
0-100-1 |
0,2 |
3 |
2016/1/1-2016/3/1 |
100-100000-2 |
3 |
3,6 |
2016/3/1-2016/5/1 |
0-100-1 |
0,2 |
3 |
2016/3/1-2016/5/1 |
0-100000-3 |
3 |
3,6 |
2016/3/1-2016/5/1 |
1000-100000-3 |
3 |
3,6 |
2016/3/1-2016/5/1 |
100-1000-2 |
然后以时间在表四所示的各数据序列中所对应的数据元素为迭代元素,遍历组成表四所示数据集的每个数据序列中除迭代元素外的剩余数据元素,可以发现不存在可以合并的数据序列。
接下来以金额费率在表四所示的各数据序列中所对应的数据元素为迭代元素,遍历组成表四所示数据集的每个数据序列中除迭代元素外的剩余数据元素,将剩余数据元素相同的数据序列合并为一个数据序列,确定合并后的数据序列与未经合并的数据序列为组成所述数据集的数据序列,如表五所示:
表五:
针对表五所示的数据集,再将档位在表五所示的各数据序列中所对应的数据元素为合并元素,遍历各数据序列的合并元素,将合并元素相同的数据序列合并为一个数据序列。
合并数据序列后,再将转换所得的离散型的数据元素还原为原来的连续型或连续嵌套型的数据元素,同时添加对应的文字信息(数值的单位),获得如表六所示的压缩数据集,包括两组数据序列:
表六:
由表一到表六所示的数据集的处理过程可知:本申请涉及的数据处理,可以将由大量的、杂乱无章的、难以理解的数据序列构成的数据集,加工成由少量的、有序的、清晰易懂的数据序列构成的数据集。
在其他实施例中,无论是数据集所含横向数据元素或纵向数据元素的数量有多少,本申请实施例所述的数据处理方法都可以兼容处理,最终获得最优的数据序列合并结果,获得占用空间较少、清晰易懂的数据集。
在某些应用场景中,可能需要调用表六所示的数据集中:属于未压缩前的数据集的单个数据序列的一组数据元素,为了便于调用数据元素,可以将表六所示的数据集还原为表一所示的数据集。
在还原的过程中,可以将表六所示的数据集的每组数据序列中,每项数据元素可以当作一个集合,对所有集合进行笛卡尔积的逆向操作,即可得出该组数据序列合并前所对应的所有数据序列组成的数据集。
首先,将数据元素划分为离散型和连续型,其中时间和金额费率所对应的数据元素为连续型数据;档位和期数所对应的数据元素为离散型数据。
第一组连续型的数据元素如表七所示:
表七:
将表七所示的数据序列拆分后,如表八所示:
时间 |
金额费率 |
2016/1/1到2016/3/1 |
0到100元,费率1% |
2016/1/1到2016/3/1 |
100到100000元,费率2% |
2016/3/1到2016/5/1 |
0到100000元,费率3% |
第二组连续型的数据元素如表七所示:
表八:
将表八所示的数据序列拆分后,如表九所示:
表九:
时间 |
金额费率 |
2016/3/1到2016/5/1 |
0到100元,费率1% |
2016/3/1到2016/5/1 |
100到1000元,费率2% |
2016/3/1到2016/5/1 |
1000到100000元,费率3% |
处理完连续型数据元素后,还原离散型数据元素,对表十所示的第一组数据序列中对应不同属性的两项离散数据元素进行笛卡尔积运算,获得两组数据(0档,3期)和(2档,3期)。
表十:
然后对表十一所示的第二组数据序列中对应不同属性的两项离散数据元素进行笛卡尔积运算,获得两组数据(3档,3期)和(3档,6期)。
表十一:
将两组数据(0档,3期)、(2档,3期)分别和表七所示的数据集进行笛卡尔积运算获得六条数据序列,再将将两组数据(3档,3期)和(3档,6期)分别和表八所示的数据集进行笛卡尔积运算获得六条数据序列,整合后得到如表十二所示的数据集:
表十二:
删除先前合并数据序列时添加的预设数据元素,转换数据类型、并添加数据元素的单位后,获得表十三所示的原始数据序列:
表十三:
档位 |
期数 |
时间 |
金额费率 |
|
3期 |
2016/1/1到2016/3/1 |
0到100元,费率1% |
2档 |
3期 |
2016/1/1到2016/3/1 |
0到100元,费率1% |
|
3期 |
2016/1/1到2016/3/1 |
100到100000元,费率2% |
2档 |
3期 |
2016/1/1到2016/3/1 |
100到100000元,费率2% |
3档 |
3期 |
2016/3/1到2016/5/1 |
0到100元,费率1% |
3档 |
6期 |
2016/3/1到2016/5/1 |
0到100元,费率1% |
|
3期 |
2016/3/1到2016/5/1 |
0到100000元,费率3% |
2档 |
3期 |
2016/3/1到2016/5/1 |
0到100000元,费率3% |
3档 |
3期 |
2016/3/1到2016/5/1 |
1000到100000元,费率3% |
3档 |
6期 |
2016/3/1到2016/5/1 |
1000到100000元,费率3% |
3档 |
3期 |
2016/3/1到2016/5/1 |
100到1000元,费率2% |
3档 |
6期 |
2016/3/1到2016/5/1 |
100到1000元,费率2% |
与前述数据处理方法的实施例相对应,本申请还提供了数据处理装置的实施例。
参见图3,图3是本申请数据处理装置的一个实施例框图,该装置可包括:数据集获取模块310、遍历元素确定模块320、序列合并模块330和数据集重组模块340。
其中,数据集获取模块310,用于获取由至少两个数据序列组成的数据集,其中,每个数据序列的各项数据元素分别对应不同的属性,不同数据序列中存在同属性的数据元素。
遍历元素确定模块320,用于从组成所述数据集的数据序列中确定一组同属性的数据元素为遍历元素。
序列合并模块330,用于遍历组成所述数据集的每个数据序列中除遍历元素外的剩余数据元素,将剩余数据元素相同的数据序列合并为一个数据序列,以使合并后的数据序列包括一项所述剩余数据元素、以及被合并的数据序列的遍历元素。
数据集重组模块340,用于确定合并后的数据序列与未经合并的数据序列为组成所述数据集的数据序列。
在一个可选的实现方式中,在遍历元素确定模块320从组成所述数据集的数据序列中确定一组同属性的数据元素为遍历元素前,本申请实施例的数据处理装置还可以包括(图3中未示出):
序列比较模块,用于在任一数据序列的元素数目少于其他数据序列的元素数目时,通过比较所述任一数据序列与其他数据序列,确定所述任一数据序列所缺少的数据元素的属性。
元素添加模块,用于在所述任一数据序列内添加所确定的属性所对应预设数据元素。
在另一个可选的实现方式中,在遍历元素确定模块320从组成所述数据集的数据序列中确定一组同属性的数据元素为遍历元素前,本申请实施例的数据处理装置还可以包括(图3中未示出):
数据类型识别模块,用于识别各数据序列中各数据元素的数据类型,所述数据类型包括离散型、连续型、以及连续嵌套型。
元素顺序调整模块,用于在各数据序列中,保持同类型的各数据元素之间的原有次序的同时,将离散型的数据元素整体调整到剩余类型的数据元素之前。
在另一个可选的实现方式中,在遍历元素确定模块320从组成所述数据集的数据序列中确定一组同属性的数据元素为遍历元素前,本申请实施例的数据处理装置还可以包括(图3中未示出):
元素类型转换模块,用于将连续型以及连续嵌套型的数据元素分别转换为相应格式的离散型的数据元素。
在另一个可选的实现方式中,所述数据序列由以下数据元素组成:
支付日期、支付金额、付款账户、收款账户、支付产品。
参见图4,图4是本申请数据处理装置的一个实施例部分框图,该装置除包括图3所示的模块外,还可以包括:迭代元素确定模块410、第一迭代模块420,第一迭代模块420包括第一遍历模块421、第一确定模块422、第一迭代返回模块423和第一压缩数据集模块424。
其中,迭代元素确定模块410,用于从组成所述数据集的数据序列中确定另一组同属性的数据元素为迭代元素。
第一迭代模块420,用于基于迭代元素执行第一迭代过程。
第一遍历模块421,用于遍历组成所述数据集的每个数据序列中除迭代元素外的剩余数据元素,将剩余数据元素相同的数据序列合并为一个数据序列,以使合并后的数据序列包括一项所述剩余数据元素、以及被合并的数据序列的迭代元素。
第一确定模块422,用于确定合并后的数据序列与未经合并的数据序列为组成所述数据集的数据序列。
第一迭代返回模块423,用于在任一数据序列存在未做过迭代元素的数据元素时,从组成所述数据集的数据序列中确定另一组同属性的数据元素为迭代元素,并返回执行所述第一迭代过程。
第一压缩数据集模块424,用于在所有数据序列中均不存在未做过迭代元素的数据元素时,确定本次迭代过程所确定的数据集为压缩数据集。
在一个可选的实现方式中,在第一压缩数据集模块424确定本次迭代过程所确定的数据集为压缩数据集后,本申请实施例的数据处理装置还可以包括(图4中未示出):
元素类型还原模块,用于将所述相应格式的离散型的数据元素还原为原来的连续型或连续嵌套型的数据元素。
在另一个可选的实现方式中,在第一压缩数据集模块424确定本次迭代过程所确定的数据集为压缩数据集后,本申请实施例的数据处理装置还可以包括(图4中未示出):
合并元素确定模块,用于从组成所述压缩数据集的数据序列中确定一组同属性的数据元素为合并元素。
第二迭代模块,用于基于合并元素执行第二迭代过程:
所以第二迭代模块包括:
第二遍历模块,用于遍历各数据序列的合并元素,将合并元素相同的数据序列合并为一个数据序列,以使合并后的数据序列包括一项所述合并元素、以及被合并的数据序列除所述合并元素外的剩余数据元素。
第二确定模块,用于确定合并后的数据序列与未经合并的数据序列为组成所述压缩数据集的数据序列。
第二迭代返回模块,用于在任一数据序列存在未做过合并元素的数据元素时,从组成所述压缩数据集的数据序列中确定另一组同属性的数据元素为合并元素,并返回执行所述第二迭代过程。
第二压缩数据集模块,用于在所有数据序列中均不存在未做过合并元素的数据元素时,确定本次迭代过程所确定的压缩数据集为最终的压缩数据集。
在一个可选的实现方式中,本申请实施例的数据处理装置还可以包括(图4中未示出):
数据集存储模块,用于将所述压缩数据集存储到对应存储区域;或,
数据集显示模块,用于将所述压缩数据集显示到对应显示区域;或,
数据集传输模块,用于将所述压缩数据集传输到对应目的地址。
上述装置中各个单元(或模块)的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元或模块可以是或者也可以不是物理上分开的,作为单元或模块显示的部件可以是或者也可以不是物理单元或模块,即可以位于一个地方,或者也可以分布到多个网络单元或模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本申请数据处理装置的实施例可以应用在电子设备上。具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现中,电子设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备、互联网电视、智能机车、智能家居设备或者这些设备中的任意几种设备的组合。
装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在电子设备的处理器将非易失性存储器等可读介质中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图5所示,为本申请数据处理装置所在电子设备的一种硬件结构图,除了图5所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的电子设备通常根据该电子设备的实际功能,还可以包括其他硬件,对此不再赘述。电子设备的存储处理器可以是可执行指令的存储器;处理器可以耦合存储器,用于读取所述存储器存储的程序指令,并作为响应,执行如下操作:获取由至少两个数据序列组成的数据集,其中,每个数据序列的各项数据元素分别对应不同的属性,不同数据序列中存在同属性的数据元素;从组成所述数据集的数据序列中确定一组同属性的数据元素为遍历元素;遍历组成所述数据集的每个数据序列中除遍历元素外的剩余数据元素,将剩余数据元素相同的数据序列合并为一个数据序列,以使合并后的数据序列包括一项所述剩余数据元素、以及被合并的数据序列的遍历元素;确定合并后的数据序列与未经合并的数据序列为组成所述数据集的数据序列。
在其他实施例中,处理器所执行的操作可以参考上文方法实施例中相关的描述,在此不予赘述。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。