CN108228560A - 一种数据类型的确定方法及装置 - Google Patents

一种数据类型的确定方法及装置 Download PDF

Info

Publication number
CN108228560A
CN108228560A CN201611199031.XA CN201611199031A CN108228560A CN 108228560 A CN108228560 A CN 108228560A CN 201611199031 A CN201611199031 A CN 201611199031A CN 108228560 A CN108228560 A CN 108228560A
Authority
CN
China
Prior art keywords
data
type
column
column data
determining
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201611199031.XA
Other languages
English (en)
Inventor
周婧
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Gridsum Technology Co Ltd
Original Assignee
Beijing Gridsum Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Gridsum Technology Co Ltd filed Critical Beijing Gridsum Technology Co Ltd
Priority to CN201611199031.XA priority Critical patent/CN108228560A/zh
Publication of CN108228560A publication Critical patent/CN108228560A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • G06F40/226Validation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种数据类型的确定方法及装置,方法包括:获取行列格式的数据中的每一列数据;确定每一列数据中第一类型的数据以及第二类型的数据在该列数据中的数量特征;基于第一类型的数据以及第二类型的数据在该列数据中的数量特征确定该列数据的数据类型。本发明公开的数据类型的确定方法及装置能够较智能的确定出行列格式的数据中每列数据的数据类型。

Description

一种数据类型的确定方法及装置
技术领域
本发明涉及数据分析技术领域,尤其涉及一种数据类型的确定方法及装置。
背景技术
在一些应用场景中,数据会以行-列的形式组织,例如,从关系型数据库中导出的文本格式的数据。在对行列格式的数据进行分析(如机器学习建模)之前,通常需要确定每一列数据的数据类型。但有些情况一列数据的数据类型不止一种,比如一列数据中有一个为字符串,其余全部为数值型时,该列就会被判断为字符串型,但这种情况下数据类型的判断结果显然并不能真实反映该列数据的数据类型,不利于后期的数据分析。
然而,现有技术中并没有提供确定列数据的数据类型的有效解决方案,为了便于对行列格式的数据进行后续处理,亟需一种能够有效确定行列格式的数据中每列数据的数据类型的方法。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的技术方案:
一种数据类型的确定方法,所述方法包括:
获取行列格式的数据中的每一列数据;
确定所述每一列数据中第一类型的数据以及第二类型的数据在该列数据中的数量特征;
基于所述第一类型的数据以及所述第二类型的数据在该列数据中的数量特征确定该列数据的数据类型。
其中,所述第一类型的数据以及所述第二类型的数据在该列数据中的数量特征分别为该列数据中所述第一类型的数据所占比例以及所述第二类型的数据的个数;
所述基于所述第一类型的数据以及所述第二类型的数据在该列数据中的数量特征确定该列数据的数据类型,包括:
判断所述第一类型的数据在该列数据中所占比例是否大于第一预设值;
当所述第一类型的数据在该列数据中所占比例大于所述第一预设值时,基于该列数据中第二类型的数据的个数确定该列数据的数据类型;
当所述第一类型的数据在该列数据中所占比例小于或等于所述第一预设值时,确定该列数据的数据类型为所述第二类型。
其中,所述当所述第一类型的数据在该列数据中所占比例大于所述第一预设值时,基于该列数据中第二类型的数据的个数确定该列数据的数据类型,包括:
若所述第一类型的数据在该列数据中所占比例大于所述第一预设值,进一步判断该列数据中第二类型的数据的个数是否小于第二预设值;
当该列数据中第二类型的数据的个数小于所述第二预设值时,确定该列数据的数据类型为所述第一类型;当该列数据中第二类型的数据的个数大于或等于所述第二预设值时,确定该列数据的数据类型为所述第二类型。
所述数据类型的确定方法,还包括:
当该列数据的数据类型为数值型时,判断该列数据中是否包含浮点型数据;
当该列数据中包含所述浮点型数据时,确定该列数据的数据类型为所述数值型中的浮点型;
当该列数据中不包含所述浮点型数据时,确定该列数据的数据类型为所述数值型中的整型。
所述数据类型的确定方法,还包括:
当该列数据的数据类型为字符串型时,基于该列数据中字符串数据的字符串格式确定该列数据的字符串类型。
一种数据类型的确定装置,所述装置包括:获取单元、第一确定单元和第二确定单元;
所述获取单元,用于获取行列格式的数据中的每一列数据;
所述第一确定单元,用于确定所述获取单元获取的所述每一列数据中第一类型的数据以及第二类型的数据在该列数据中的数量特征;
所述第二确定单元,用于基于所述第一确定单元确定的所述第一类型的数据以及所述第二类型的数据在该列数据中的数量特征确定该列数据的数据类型。
其中,所述第一确定单元,具体用于确定该列数据中所述第一类型的数据所占比例以及所述第二类型的数据的个数;
所述第二确定单元包括:判断子单元、第一确定子单元和第二确定子单元;
所述判断子单元,用于当所述第一类型的数据在该列数据中所占比例大于所述第一预设值时,判断所述第一类型的数据在该列数据中所占比例是否大于第一预设值;
所述第一确定子单元,用于当所述第一类型的数据在该列数据中所占比例大于所述第一预设值时,基于该列数据中第二类型的数据的个数确定该列数据的数据类型;
所述第二确定子单元,用于当所述第一类型的数据所占比例小于或等于所述第一预设值时,确定该列数据的数据类型为所述第二类型。
其中,所述第一确定子单元包括:判断子模块和确定子模块;
所述判断子模块,用于判断该列数据中第二类型的数据的个数是否小于第二预设值;
所述确定子模块,用于当该列数据中第二类型的数据的个数小于所述第二预设值时,确定该列数据的数据类型为所述第一类型,当该列数据中第二类型的数据的个数大于或等于所述第二预设值时,确定该列数据的数据类型为所述第二类型。
所述数据类型的确定装置还包括:判断单元和第三确定单元;
所述判断单元,用于当该列数据的数据类型为数值型时,判断该列数据中是否包含浮点型数据;
所述第三确定单元,用于当所述判断单元判断出该列数据中包含所述浮点型数据时,确定该列数据的数据类型为所述数值型中的浮点型,当所述判断单元判断出该列数据中不包含所述浮点型数据时,确定该列数据的数据类型为所述数值型中的整型。
所述数据类型的确定装置还包括:第四确定单元;
所述第四确定单元,用于当该列数据的数据类型为字符串型时,基于该列数据中字符串数据的字符串格式确定该列数据的字符串类型。
借由上述技术方案,本发明提供的数据类型的确定方法及装置,能够在获取到行列格式的数据中的每一列数据之后,确定每一列数据中第一类型的数据以及第二类型的数据在该列数据中的数量特征,进而基于第一类型的数据以及第二类型的数据在该列数据中的数量特征确定该列数据的数据类型。由此可见,本发明提供的数据类型的确定方法及装置能够较智能的确定出行列格式的数据中每列数据的数据类型,从而能够方便地对行列格式的数据进行后续处理。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本发明实施例提供的数据类型的确定方法的流程示意图;
图2示出了本发明实施例提供的数据类型的确定方法中,基于第一类型的数据以及第二类型的数据在该列数据中的数量特征确定该列数据的数据类型的实现过程的流程示意图;
图3示出了本发明实施例提供的数据类型的确定方法一具体实例的流程示意图;
图4示出了本发明实施例提供的数据类型的确定方法另一具体实例的流程示意图;
图5示出了本发明实施例提供的数据类型的确定方法再一具体实例的流程示意图;
图6示出了本发明实施例提供的数据类型的确定方法又一具体实例的流程示意图;
图7示出了本发明实施例提供的数据类型的确定装置的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本发明实施例提供了一种数据类型的确定方法,请参阅图1,示出了该方法的流程示意图,可以包括:
步骤S101:获取行列格式的数据中的每列数据。
步骤S102:确定每列数据中第一类型的数据以及第二类型的数据在该列数据中的数量特征。
步骤S103:基于第一类型的数据以及第二类型的数据在该列数据中的数量特征确定该列数据的数据类型。
本发明实施例提供的数据类型的确定方法,能够在获取到行列格式的数据中的每一列数据之后,确定每一列数据中第一类型的数据以及第二类型的数据在该列数据中的数量特征,进而基于第一类型的数据以及第二类型的数据在该列数据中的数量特征确定该列数据的数据类型,即本发明实施例提供的数据类型的确定方法能够较智能的确定出行列格式的数据中每列数据的数据类型,从而能够方便地对行列格式的数据进行后续处理。
在上述实施例中,第一类型的数据以及第二类型的数据在该列数据中的数量特征可以为该列数据中第一类型的数据所占比例以及第二类型的数据的个数。请参阅图2,示出了上述实施例中,基于第一类型的数据以及第二类型的数据在该列数据中的数量特征确定该列数据的数据类型的实现过程的流程示意图,可以包括:
步骤S201:判断第一类型的数据在该列数据中所占比例是否大于第一预设值。
步骤S202a:当第一类型的数据在该列数据中所占比例大于第一预设值时,基于该列数据中第二类型的数据的个数确定该列数据的数据类型。
步骤S202b:当第一类型的数据在该列数据中所占比例小于或等于第一预设值时,确定该列数据的数据类型为第二类型。
可选地,当第一类型为数值型时,第二类型为字符串型,当第一类型为字符串型时,第二类型为数值型。当然除了数值型和字符串型,本发明实施例中的数据类型的确定方法也适用于其它任何两种不同类型的数据的判断。
以行列格式的数据中的某列为例,当第一类型为数值型,第二类型为字符串型时,需要确定数值型数据在该列数据中所占比例,以及该列数据中字符串型数据的个数,具体的,先统计该列数据的总数据个数,假设总数据个数为100,基于数值型数据的特点从这100个数据中识别出数值型数据并统计数值型数据的个数,假设数值型数据为98个,则可获得数据型数据在该列数据中所占比例为0.98,由于数据类型包括数值型和字符串型两种,则在确定出数值型数据为98个之后,可确定剩余的数据为字符串型,即得到字符串型数据为2个。当然,也可先基于字符串型数据的特点从100个数据中识别出字符串型数据并统计字符串型数据的个数,假设为2个,基于字符串型数据的个数确定数值型数据的个数为98个,并进一步基于数值型数据的个数和该列数据的总数据个数确定出数值型数据在该列数据所占比例为0.98。
当第一类型为字符串型,第二类型为数值型时,需要确定字符串值型数据在该列数据中所占比例,以及该列数据中数值型数据的个数,具体的,先统计该列数据的总数据个数,假设总数据个数为100,基于字符串型数据的特点从这100个数据中识别出字符串型数据并统计字符串型数据的个数,假设字符串型数据为98个,则可获得字符串型数据在该列数据中所占比例为0.98,由于字符串型数据为98个,则可确定数值型数据为2个。当然,也可先基于数值型数据的特点从100个数据中识别出数值型数据并统计数值型数据的个数,假设为2个,基于数值型数据的个数确定字符串型数据的个数为98个,并进一步基于字符串型数据的个数和该列数据的总数据个数确定出字符串型数据在该列数据所占比例为0.98。
请参阅图3,示出了本发明实施例提供的数据类型的确定方法的一具体实例的流程示意图,可以包括:
步骤S301:获取行列格式的数据中的每列数据。
步骤S302:确定每列数据中数值型数据所占比例以及字符串型数据的个数。
其中,数值型数据所占比例为该列数据中数值型数据的个数与该列数据中总数据个数的比值。
步骤S303:判断数值型数据在该列数据中所占比例是否大于第一预设值。
步骤S304:当数值型数据在该列数据中所占比例大于第一预设值时,判断该列数据中字符串型数据的个数是否小于第二预设值,当该列数据中字符串型数据的个数小于第二预设值时,执行步骤S305a,当该列数据中字符串型数据的个数大于或等于第二预设值时,执行步骤S305b。
步骤S305a:确定该列数据的数据类型为数值型。
步骤S305b:确定该列数据的数据类型为字符串型。
示例性的,第一预设值为0.97,第二预设值为10,假设行列格式数据中某列数据的总数据个数为100,数值型数据的个数为98,那么,数值型数据所占比例为0.98,由于其大于第一预设值0.97,因此,需进一步基于字符串型数据的个数确定该列数据的数据类型,由于字符串型数据的个数为2,其小于第二预设值10,则将该列数据的数据类型确定为数值型数据。需要说明的是,字符串型数据的个数2小于第二预设值10,表明字符串数据的量很少,这两个字符串型数据为脏数据,其很可能是数值型数据由于某种原因出错而导致的。
示例性的,第一预设值为0.97,第二预设值为100,某列数据的总数据个数为10000,数值型数据的个数为9800,那么,数值型数据所占比例为0.98,由于其大于第一预设值0.97,因此,需进一步基于字符串型数据的个数确定该列数据的数据类型,由于字符串型数据的个数为200,其大于第二预设值100,则将该列数据的数据类型确定为字符串型数据。需要说明的是,当该列数据中字符串型数据200的个数大于第二预设值为100时,表明字符串型数据的数量较多,此时这200个字符串可能并不是脏数据,而是真正的字符串数据,如果将该列数据作为数值型数据进行后续处理,很可能会影响后续的处理效果,因此,在这种情况下,将该列数据的数据类型确定为字符串型。
在本实施例中,当数值型数据所占比例小于或等于第一预设值时,执行步骤S305b,即确定该列数据的数据类型为字符串型数据。
需要说明的是,实际应用时,第一预设值和第二预设值可基于每列数据的数据量确定。
本发明实施例提供的数据类型的确定方法,对于行列格式的数据中的每列数据而而言,能够基于每列数据中数值型数据所占比例以及字符串型数据的个数,确定出每列数据的数据类型,即,如果数值型数据在该列数据中所占比例大于第一预设值,则进一步基于字符串型数据的个数确定该列数据的数据类型,如果数值型数据所占比例小于或等于第一预设值,则确定该列数据的数据类型为字符串型。由此可见,本发明实施例提供的数据类型的确定方法能够较智能的确定出行列格式的数据中每列数据的数据类型,从而能够方便地对行列格式的数据进行后续处理。
请参阅图4,示出了本发明实施例提供的数据类型的确定方法的另一具体实例的流程示意图,可以包括:
步骤S401:获取行列格式的数据中的每列数据。
步骤S402:确定每列数据中字符串型数据所占比例以及数值型数据的个数。
其中,字符串型数据在该列数据中所占比例为该列数据中字符串型数据的个数与该列数据中总数据个数的比值。
步骤S403:判断字符串型数据在该列数据中所占比例是否大于第一预设值。
步骤S404:当字符串型数据在该列数据中所占比例大于第一预设值时,进一步判断该列数据中数值型数据的个数是否小于第二预设值,当该列数据中数值型数据的个数小于第二预设值时,执行步骤S405a,当该列数据中数值型数据的个数大于或等于第二预设值时,执行步骤S405b。
步骤S405a:确定该列数据的数据类型为字符串型数据。
步骤S405b:确定该列数据的数据类型为数值型数据。
示例性的,第一预设值为0.98,第二预设值为10,某列数据的总数据个数为100,字符串型数据的个数为99,那么,字符串型数据所占比例为0.99,由于其大于第一预设值0.98,因此,需进一步基于数值型数据的个数确定目标列数据的数据类型,由于数值型数据的个数为1,其小于第二预设值10,则将该列数据的数据类型确定为字符串数据。
示例性的,第一预设值为0.96,第二预设值为100,某列数据中总数据个数为10000,字符串型数据的个数为9700,那么,字符串型数据所占比例为0.97,由于其大于第一预设值0.96,因此,需进一步基于数值型数据的个数确定该列数据的数据类型,由于数值型数据的个数为300,其大于第二预设值100,则将该列数据的数据类型确定为数值型数据。
在本实施例中,当字符串型数据所占比例小于或等于第一预设值时,执行步骤S405b,即确定该列数据的数据类型为数值型数据。
需要说明的是,实际应用时,第一预设值和第二预设值可基于每列数据的数据量确定。
本发明实施例提供的数据类型的确定方法,对于行列格式的每列数据而言,能够基于该列数据中字符串型数据所占比例以及数值型数据的个数,确定出该列数据的数据类型,即,如果字符串型数据所占比例大于第一预设值,则进一步基于数值型数据的个数确定该列数据的数据类型,如果字符串型数据所占比例小于或等于第一预设值,则确定该列数据的数据类型为数值型。由此可见,本发明实施例提供的数据类型的确定方法能够较智能的确定出行列格式的数据中每列数据的数据类型,从而能够方便地对行列格式的数据进行后续处理。
可以理解的是,数据类型包括数值型和字符串型,而数值型进一步可包括整型和浮点型,字符串型包括多种特殊的字符串型,例如IP字符串型(如IP地址)、日期字符串型、时间戳字符串型、经纬度字符串型等等。在某些情况下,为了后续的处理,可能需要确定出该列数据较为细的数据类型,例如,为了便于后续计算的准确性,需要确定出该列数据是为数值型中的浮点型还是数值型中的整型。
基于上述情况,请参阅图5,示出了本发明实施例提供的数据类型的确定方法的再一具体实例的流程示意图,可以包括:
步骤S501:获取行列格式的数据中的每列数据。
步骤S502:确定每列数据中数值型数据所占比例以及字符串型数据的个数。
其中,每列目标列数据中数值型数据所占比例为该列数据中数值型数据的个数与该列数据中总数据个数的比值。
步骤S503:判断数值型数据在该列数据中所占比例是否大于第一预设值。
步骤S504:当数值型数据在该列数据中所占比例大于第一预设值时,进一步判断该列数据中字符串型数据的个数是否小于第二预设值,当该列数据中字符串型数据的个数小于第二预设值时,执行步骤S505a,当该列数据中字符串型数据的个数大于或等于第二预设值时,执行步骤S505b。
步骤S505a:确定该列数据的数据类型为数值型。
步骤S505b:确定该列数据的数据类型为字符串型。
在本实施例中,当数值型数据所占比例小于或等于第一预设值时,执行步骤S505b,即确定该列数据的数据类型为字符串型数据。
需要说明的是,实际应用时,第一预设值和第二预设值可基于每列数据的数据量确定。
在确定出该列数据的数据类型为数值型时,本发明实施例提供的数据类型的确定方法还可以包括:
步骤S506:判断该列数据中是否包含浮点型数据。
步骤S507a:当该列数据中包含浮点型数据时,确定该列数据的数据类型为数值型中的浮点型。
步骤S507b:当该列数据中不包含浮点型数据时,确定该列数据的数据类型为数值型中的整型。
由上述步骤可知,一旦某列数据中包含浮点型数据,即把该列数据的数据类型确定为数值型中的浮点型。可以理解的是,如果将整型数据判定为浮点型,后续的计算肯定不会出错,例如,将整型数据3当成浮点型数据3.0,将整型数据7当成浮点型数据7.0,对二者进行计算,并不会影响计算结果的准确性,但是,如果将浮点型数据当成整型数据可能就会出现数据错误、数据混乱、数据报错等情况。因此,为了保证后续数据处理的准确性,本实施例只要判断出该列数据中包含浮点型数据,即把该列数据的数据类型确定为数值型中的浮点型,也就是说,即便该列数据中只有1个浮点型数据,也将该列数据的数据类型确定为数值型中的浮点型。
在确定出该列数据的数据类型为字符串型时,本发明实施例提供的数据类型的确定方法还可以包括:
步骤S508:基于该列数据中字符串数据的字符串格式确定该列数据的字符串类型。
具体的,可预先设定字符串类型与字符串格式的对应关系,则在确定该列数据中字符串数据的字符串类型时,基于该列数据中字符串数据的字符串格式,利用预设的字符串类型与字符串格式的对应关系,确定该列数据的字符串类型。
在一种可能的实现方式中,可维护字符串类型与字符串格式的对应关系表,在确定字符串类型时,利用该列数据中的字符串数据的字符串格式,基于字符串类型与字符串格式的对应关系表确定该列数据的字符串类型。示例性的,字符串类型与字符串格式的对应关系表如下所示:
表1
字符串类型 字符串格式
日期字符串型 YYYY-MM-DD;DD/MM/YYYY
时间戳字符串型 YYYY-MM-DD hh:mm:ss
经纬度字符串型 (经度,纬度)
IP字符串型 X.X.X.X(X的取值范围是[0,255])
具体的,在字符串类型与字符串格式的对应关系表中查找与该列数据中的字符串数据的字符串格式相同的字符串格式,假设与该列数据中的字符串数据的字符串格式相同的字符串格式为“YYYY-MM-DD”,则将与字符串格式“YYYY-MM-DD”对应的字符串类型确定为该列数据的字符串类型,由于“YYYY-MM-DD”对应的字符串类型为“日期字符串型”,则可确定该列数据的字符串类型为日期字符串型。同样的,如果与该列数据中的字符串数据的字符串格式相同的字符串格式为“(经度,纬度)”,则可确定该列数据的字符串类型为经纬度字符串型。
在一种可能的实现方式中,字符串类型与字符串格式的对应关系表可仅存储一些特殊字符串的字符串类型和对应的字符串格式,在确定该列数据的字符串类型时,如果在字符串类型与字符串格式的对应关系表中查找不到与该列数据中的字符串数据的字符串格式一致的字符串格式,则将该列数据的字符串类型确定为普通字符串类型。
需要说明的是,本发明实施例并不限定字符串类型仅为上述几种,上述的字符串类型仅是示例,实际应用时,不同的行业可根据自己的实际需求去自定义字符串类型以及与该字符串类型对应的字符串格式。
本发明实施例提供的数据类型的确定方法,能够基于每列数据中数值型数据所占比例以及字符串型数据的个数,确定出每列数据的数据类型,即,如果数值型数据所占比例大于第一预设值,则进一步基于字符串型数据的个数确定该列数据的数据类型,如果数值型数据所占比例小于或等于第一预设值,则确定该列数据的数据类型为字符串型。由此可见,本发明实施例提供的数据类型的确定方法能够较智能的确定出行列格式的数据中每列数据的数据类型,从而能够方便地对行列格式的数据进行后续处理。为了满足后续较高的数据分析和处理要求,本发明提供的数据类型的确定方法,在确定出列数据的数据类型为数值型之后,还可进一步确定出该列数据的数据类型为数值型中的哪类,在确定出该列数据的数据类型为字符串型之后,还可进一步确定出为何种类型的字符串,即能够确定出较细的数据类型。
请参阅图6,示出了本发明实施例提供的数据类型的确定方法的又一具体实例的流程示意图,可以包括:
步骤S601:获取行列格式的数据中的每列数据。
步骤S602:确定每列数据中字符串型数据所占比例以及数值型数据的个数。
其中,每列数据中字符串型数据所占比例为该列数据中字符串型数据的个数与该列数据中总数据个数的比值。
步骤S603:判断字符串型数据所占比例是否大于第一预设值。
步骤S604:当字符串型数据所占比例大于第一预设值时,判断该列数据中数值型数据的个数是否小于第二预设值,当该列数据中数值型数据的个数小于第二预设值时,执行步骤S605a,当该列数据中数值型数据的个数大于或等于第二预设值时,执行步骤S605b。
步骤S605a:确定该列数据的数据类型为字符串型数据。
步骤S605b:确定该列数据的数据类型为数值型数据。
在本实施例中,当字符串型数据所占比例小于或等于第一预设值时,执行步骤S605b,即确定该列数据的数据类型为数值型数据。
需要说明的是,实际应用时,第一预设值和第二预设值可基于该列数据的数据量确定。
在确定出该列数据的数据类型为数值型时,本发明实施例提供的数据类型的确定方法还可以包括:
步骤S606:判断该列数据中是否包含浮点型数据。
步骤S607a:当该列数据中包含浮点型数据时,确定该列数据的数据类型为数值型中的浮点型。
步骤S607b:当该列数据中不包含浮点型数据时,确定该列数据的数据类型为数值型中的整型。
由上述步骤可知,一旦列数据中包含浮点型数据,即把该列数据的数据类型确定为数值型中的浮点型。可以理解的是,如果将整型数据判定为浮点型,后续的计算肯定不会出错,但是如果将浮点型数据当成整型数据可能就会出现数据错误、数据混乱、报错等情况。因此,为了保证后续数据处理的准确性,本实施例只要判断出该列数据中包含浮点型数据,即把该列数据的数据类型确定为数值型中的浮点型。
在确定出该列数据的数据类型为字符串型时,本发明实施例提供的数据类型的确定方法还可以包括:
步骤S608:基于该列数据中字符串数据的字符串格式确定该列数据的字符串类型。
在一种可能的实现方式中,可预先设定字符串类型与字符串格式的对应关系,则在确定列数据中字符串数据的字符串类型时,基于该列数据中字符串数据的字符串格式,利用预设的字符串类型与字符串格式的对应关系,确定该列数据的字符串类型。需要说明的是,基于该列数据中字符串数据的字符串格式,利用预设的字符串类型与字符串格式的对应关系,确定该列数据的字符串类型的具体实现方式可参见上述实施例,在此不作赘述。
本发明实施例提供的数据类型的确定方法,能够基于每列数据中字符串型数据所占比例以及数值型数据的个数,确定出每列数据的数据类型,即,如果字符串型数据所占比例大于第一预设值,则进一步基于数值型数据的个数确定该列数据的数据类型,如果字符串型数据所占比例小于或等于第一预设值,则确定该列数据的数据类型为数值型。由此可见,本发明实施例提供的数据类型的确定方法能够较智能的确定出行列格式的数据中每列数据的数据类型,从而能够方便地对行列格式的数据进行后续处理。为了满足后续较高的数据分析和处理要求,本发明提供的数据类型的确定方法,在确定出列数据的数据类型为数值型之后,还可进一步确定出该列数据的数据类型为数值型中的哪类,在确定出该列数据的数据类型为字符串型之后,还可进一步确定出为何种类型的字符串,即能够确定出较细的数据类型。
与上述方法相对应,本发明实施例还提供了一种数据类型的确定装置,请参阅图7,示出了该装置的结构示意图,可以包括:获取单元701、第一确定单元702和第二确定单元703。
获取单元701,用于获取行列格式的数据中的每一列数据。
第一确定单元702,用于确定获取单元701获取的所述每一列数据中第一类型的数据以及第二类型的数据在该列数据中的数量特征。
第二确定单元703,用于基于第一确定单元702确定的第一类型的数据以及第二类型的数据在该列数据中的数量特征确定该列数据的数据类型。
本发明实施例提供的数据类型的确定装置,能够在获取到行列格式的数据中的每一列数据之后,确定每一列数据中第一类型的数据以及第二类型的数据在该列数据中的数量特征,进而基于第一类型的数据以及第二类型的数据在该列数据中的数量特征确定该列数据的数据类型,即本发明实施例提供的数据类型的确定装置能够较智能的确定出行列格式的数据中每列数据的数据类型,从而能够方便地对行列格式的数据进行后续处理。
在上述实施例提供的数据类型的确定装置中,第一确定单元,具体用于确定该列数据中第一类型的数据所占比例以及第二类型的数据的个数。
第二确定单元包括:判断子单元、第一确定子单元和第二确定子单元。
判断子单元,用于当第一类型的数据在该列数据中所占比例大于所述第一预设值时,判断第一类型的数据在该列数据中所占比例是否大于第一预设值。
第一确定子单元,用于当第一类型的数据在该列数据中所占比例大于第一预设值时,基于该列数据中第二类型的数据的个数确定该列数据的数据类型。
第二确定子单元,用于当第一类型的数据所占比例小于或等于第一预设值时,确定该列数据的数据类型为第二类型。
可选地,当第一类型为数值型时,第二类型为字符串型,当第一类型为字符串型时,第二类型为数值型。当然除了数值型和字符串型,本发明实施例中的数据类型的确定方法也适用于其它任何两种不同类型的数据的判断。
进一步的,第一确定子单元包括:判断子模块和确定子模块。
判断子模块,用于判断该列数据中第二类型的数据的个数是否小于第二预设值;
确定子模块,用于当该列数据中第二类型的数据的个数小于第二预设值时,确定该列数据的数据类型为第一类型,当该列数据中第二类型的数据的个数大于或等于第二预设值时,确定该列数据的数据类型为第二类型。
上述实施例提供的数据类型的确定装置还可以包括:判断单元和第三确定单元。
判断单元,用于当该列数据的数据类型为数值型时,判断该列数据中是否包含浮点型数据。
第三确定单元,用于当判断单元判断出该列数据中包含浮点型数据时,确定该列数据的数据类型为数值型中的浮点型,当判断单元判断出该列数据中不包含浮点型数据时,确定该列数据的数据类型为数值型中的整型。
上述实施例提供的数据类型的确定装置还可以包括:第四确定单元。
第四确定单元,用于当该列数据的数据类型为字符串型时,基于该列数据中字符串数据的字符串格式确定该列数据的字符串类型
所述数据类型的确定装置包括处理器和存储器,上述获取单元、第一确定单元和第二确定单元等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来确定行列格式的数据中的每列数据的数据类型。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本发明实施例提供的数据类型的确定装置,能够在获取到行列格式的数据中的每一列数据之后,确定每一列数据中第一类型的数据以及第二类型的数据在该列数据中的数量特征,进而基于第一类型的数据以及第二类型的数据在该列数据中的数量特征确定该列数据的数据类型,即本发明实施例提供的数据类型的确定装置能够较智能的确定出行列格式的数据中每列数据的数据类型,从而能够方便地对行列格式的数据进行后续处理。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序代码:获取行列格式的数据中的每一列数据;确定所述每一列数据中第一类型的数据以及第二类型的数据在该列数据中的数量特征;基于所述第一类型的数据以及所述第二类型的数据在该列数据中的数量特征确定该列数据的数据类型。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (10)

1.一种数据类型的确定方法,其特征在于,所述方法包括:
获取行列格式的数据中的每一列数据;
确定所述每一列数据中第一类型的数据以及第二类型的数据在该列数据中的数量特征;
基于所述第一类型的数据以及所述第二类型的数据在该列数据中的数量特征确定该列数据的数据类型。
2.根据权利要求1所述的数据类型的确定方法,其特征在于,所述第一类型的数据以及所述第二类型的数据在该列数据中的数量特征分别为该列数据中所述第一类型的数据所占比例以及所述第二类型的数据的个数;
所述基于所述第一类型的数据以及所述第二类型的数据在该列数据中的数量特征确定该列数据的数据类型,包括:
判断所述第一类型的数据在该列数据中所占比例是否大于第一预设值;
当所述第一类型的数据在该列数据中所占比例大于所述第一预设值时,基于该列数据中第二类型的数据的个数确定该列数据的数据类型;
当所述第一类型的数据在该列数据中所占比例小于或等于所述第一预设值时,确定该列数据的数据类型为所述第二类型。
3.根据权利要求2所述的数据类型的确定方法,其特征在于,所述当所述第一类型的数据在该列数据中所占比例大于所述第一预设值时,基于该列数据中第二类型的数据的个数确定该列数据的数据类型,包括:
若所述第一类型的数据在该列数据中所占比例大于所述第一预设值,进一步判断该列数据中第二类型的数据的个数是否小于第二预设值;
当该列数据中第二类型的数据的个数小于所述第二预设值时,确定该列数据的数据类型为所述第一类型;当该列数据中第二类型的数据的个数大于或等于所述第二预设值时,确定该列数据的数据类型为所述第二类型。
4.根据权利要求1-3中任意一项所述的数据类型的确定方法,其特征在于,所述方法还包括:
当该列数据的数据类型为数值型时,判断该列数据中是否包含浮点型数据;
当该列数据中包含所述浮点型数据时,确定该列数据的数据类型为所述数值型中的浮点型;
当该列数据中不包含所述浮点型数据时,确定该列数据的数据类型为所述数值型中的整型。
5.根据权利要求1-3中任意一项所述的数据类型的确定方法,其特征在于,所述方法还包括:
当该列数据的数据类型为字符串型时,基于该列数据中字符串数据的字符串格式确定该列数据的字符串类型。
6.一种数据类型的确定装置,其特征在于,所述装置包括:获取单元、第一确定单元和第二确定单元;
所述获取单元,用于获取行列格式的数据中的每一列数据;
所述第一确定单元,用于确定所述获取单元获取的所述每一列数据中第一类型的数据以及第二类型的数据在该列数据中的数量特征;
所述第二确定单元,用于基于所述第一确定单元确定的所述第一类型的数据以及所述第二类型的数据在该列数据中的数量特征确定该列数据的数据类型。
7.根据权利要求6所述的数据类型的确定装置,其特征在于,
所述第一确定单元,具体用于确定该列数据中所述第一类型的数据所占比例以及所述第二类型的数据的个数;
所述第二确定单元包括:判断子单元、第一确定子单元和第二确定子单元;
所述判断子单元,用于判断所述第一类型的数据在该列数据中所占比例是否大于第一预设值;
所述第一确定子单元,用于当所述第一类型的数据在该列数据中所占比例大于所述第一预设值时,基于该列数据中第二类型的数据的个数确定该列数据的数据类型;
所述第二确定子单元,用于当所述第一类型的数据所占比例小于或等于所述第一预设值时,确定该列数据的数据类型为所述第二类型。
8.根据权利要求7所述的数据类型的确定装置,其特征在于,所述第一确定子单元包括:判断子模块和确定子模块;
所述判断子模块,用于当所述第一类型的数据在该列数据中所占比例大于所述第一预设值时,判断该列数据中第二类型的数据的个数是否小于第二预设值;
所述确定子模块,用于当该列数据中第二类型的数据的个数小于所述第二预设值时,确定该列数据的数据类型为所述第一类型,当该列数据中第二类型的数据的个数大于或等于所述第二预设值时,确定该列数据的数据类型为所述第二类型。
9.根据权利要求6-8中任意一项所述的数据类型的确定装置,其特征在于,所述装置还包括:判断单元和第三确定单元;
所述判断单元,用于当该列数据的数据类型为数值型时,判断该列数据中是否包含浮点型数据;
所述第三确定单元,用于当所述判断单元判断出该列数据中包含所述浮点型数据时,确定该列数据的数据类型为所述数值型中的浮点型,当所述判断单元判断出该列数据中不包含所述浮点型数据时,确定该列数据的数据类型为所述数值型中的整型。
10.根据权利要求6-8中任意一项所述的数据类型的确定装置,其特征在于,所述装置还包括:第四确定单元;
所述第四确定单元,用于当该列数据的数据类型为字符串型时,基于该列数据中字符串数据的字符串格式确定该列数据的字符串类型。
CN201611199031.XA 2016-12-22 2016-12-22 一种数据类型的确定方法及装置 Pending CN108228560A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611199031.XA CN108228560A (zh) 2016-12-22 2016-12-22 一种数据类型的确定方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611199031.XA CN108228560A (zh) 2016-12-22 2016-12-22 一种数据类型的确定方法及装置

Publications (1)

Publication Number Publication Date
CN108228560A true CN108228560A (zh) 2018-06-29

Family

ID=62656197

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611199031.XA Pending CN108228560A (zh) 2016-12-22 2016-12-22 一种数据类型的确定方法及装置

Country Status (1)

Country Link
CN (1) CN108228560A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110311890A (zh) * 2019-05-22 2019-10-08 中国平安财产保险股份有限公司 可视化攻防图生成方法、装置、计算机设备及存储介质
CN110362630A (zh) * 2019-07-19 2019-10-22 深圳前海微众银行股份有限公司 数据管理方法、装置、设备与计算机可读存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104239301A (zh) * 2013-06-06 2014-12-24 阿里巴巴集团控股有限公司 一种数据比对方法和装置
US9378226B1 (en) * 2012-10-10 2016-06-28 Google Inc. Method and system for a user-defined field type

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9378226B1 (en) * 2012-10-10 2016-06-28 Google Inc. Method and system for a user-defined field type
CN104239301A (zh) * 2013-06-06 2014-12-24 阿里巴巴集团控股有限公司 一种数据比对方法和装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ATLAS: "同一个字段里要放不同类型的数据怎么处理", 《HTTPS://BBS.CSDN.NET/TOPICS/80203712》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110311890A (zh) * 2019-05-22 2019-10-08 中国平安财产保险股份有限公司 可视化攻防图生成方法、装置、计算机设备及存储介质
CN110311890B (zh) * 2019-05-22 2023-06-27 中国平安财产保险股份有限公司 可视化攻防图生成方法、装置、计算机设备及存储介质
CN110362630A (zh) * 2019-07-19 2019-10-22 深圳前海微众银行股份有限公司 数据管理方法、装置、设备与计算机可读存储介质
CN110362630B (zh) * 2019-07-19 2023-11-28 深圳前海微众银行股份有限公司 数据管理方法、装置、设备与计算机可读存储介质

Similar Documents

Publication Publication Date Title
US10282360B2 (en) Uniform chart formatting based on semantics in data models
CN111242793B (zh) 医保数据异常的检测方法和装置
EP3270316A1 (en) Method and system for user device identification
CN104732307A (zh) 项目工作量获取方法和系统
CN107633015A (zh) 一种数据处理方法、装置及设备
CN102968370A (zh) 一种测试数据生成方法及装置
CN107066519A (zh) 一种任务检测方法及装置
CN109597983A (zh) 一种拼写纠错方法及装置
WO2021169386A1 (zh) 一种图数据处理方法、装置、设备、介质
CN107436872A (zh) 一种异构数据的处理方法及装置
CN110457182A (zh) 一种负载均衡集群实例运行指标监控系统
US10585875B2 (en) Data warehouse model validation
Oort et al. Maximum likelihood estimation in meta‐analytic structural equation modeling
CN108228560A (zh) 一种数据类型的确定方法及装置
CN108228443A (zh) 一种web应用的测试方法及装置
CN104765775B (zh) 一种日志保存方法及装置
CN107067276A (zh) 确定对象影响力的方法及装置
US9201967B1 (en) Rule based product classification
CN107016028A (zh) 数据处理方法及其设备
CN108255880A (zh) 数据处理方法及装置
US10372849B2 (en) Performing and communicating sheet metal simulations employing a combination of factors
CN105574022B (zh) 一种基于关系数据库的业务对象的处理方法和装置
CN116304251A (zh) 标签处理方法、装置、计算机设备和存储介质
CN110209769A (zh) 文本填写方法及装置
CN115543435A (zh) 基于开发贡献值的软件开发质量衡量方法、装置及设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 100080 No. 401, 4th Floor, Haitai Building, 229 North Fourth Ring Road, Haidian District, Beijing

Applicant after: BEIJING GRIDSUM TECHNOLOGY Co.,Ltd.

Address before: 100086 Cuigong Hotel, 76 Zhichun Road, Shuangyushu District, Haidian District, Beijing

Applicant before: BEIJING GRIDSUM TECHNOLOGY Co.,Ltd.

RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20180629