SemanticImport

SemanticImport[file]

试图语义导入一个文件以给出一个 Dataset 对象.

SemanticImport[file,type]

试图将文件中的所有元素解释成都属于指定类型.

SemanticImport[file,{type1,type2,}]

试图将连续列的元素解释成都属于指定类型.

SemanticImport[file,col1->type1,col2->type2,]

只保留由他们的位置或名字所指明的列 coli.

SemanticImport[file,typespec,form]

以指定形式表述结果.

更多信息和选项

  • SemanticImport[file] 中,file 可被指定为 File["path"]"path".
  • SemanticImport 主要是为一维和二维元素的数组.
  • SemanticImport 可使用自由形式的语言学来解释给出的结构中的元素.
  • 返回的对象类型包括数,Quantity 对象,Entity 对象,DateObjectGeoPosition 等等.
  • SemanticImport 通过检查输入中特定的行或列中的所有元素作出详细的假定,例如关于日期格式.
  • type 可能的值包括:
  • Automatic自动选取类型
    "String"Unicode 字符串
    "Number"任何标准格式的数
    "Integer"十进制记数的整数
    "Real"十进制记数的实数
    "Quantity"有单位的量
    "Currency"货币数量
    "Date"任何标准格式的日期
    "DateTime"日期和时间
    "Time"一天当中的时间
    "GeoCoordinates"以纬度、经度给出的地理位置
    "URL"正确格式的 URL
    "EmailAddress"正确格式的电子邮件地址
    "Country"用自然语言给出的国家
    "City"用自然语言给出的城市
    None跳过一列
    ispecInterpreter 使用的任何形式
  • 给出以下选项来表明输入特征:
  • CharacterEncoding Automatic假定的输入文件编码
    Delimiters Automatic元素之间的定界符
    HeaderLines Automatic被视为标头的行号
    ExcludedLines {}需从结果中排出的行
    MissingDataRules {}取代被认为是"missing"的数据的规则
  • form 的可能的值包括:
  • "Dataset"一个行定向的数据集
    "List"一个作为列表的单列
    "Columns"一个列的列表,每列都以列表形式给出
    "NamedColumns"将列名与内容列表相关联的一个关联
    "Rows"一个行的列表,每行都以列表形式给出
    "NamedRows"一个行的列表,每行都以列名到内容列表的关联的形式给出
  • 当元素无法被解释时,返回的取而代之的形式包括:
  • Missing["Empty"]一个空的或空白字符的元素
    Missing["Invalid","string"]有无效或无意义的数据字段
    Missing["Unrecognized","string"]不能被语法分析的元素
    Missing["ByDesignation",value]MissingDataRules 匹配的元素
    Missing[custom]MissingDataRules 提供的 Missing[]

范例

打开所有单元关闭所有单元

基本范例  (7)

导入一个文件,自动检测并解读日期和城市:

粗体显示的列对应于 Wolfram 语言的语义对象:

导入有指定列类型的文件:

只导入一个文件的某些列,使用指定的格式和列号:

只导入一个文件的某些列,使用指定的格式和列号:

只导入某些列,为需要被删除的列指定 None

将一个文件作为一个行的列表导入:

将一个文件作为一个列的列表导入:

范围  (3)

使用给出的字符编码导入一个文件:

用给出的定界符导入一个文件:

指明该导入文件的第一行是一个标头:

指明一个文件的第一和第五行应该被跳过:

Missing["UnknownData"] 的特殊形式返回缺失值("Unknown" 形式):

选项  (7)

SemanticImport 使用很多与 SemanticImportString 相同的选项. 参照SemanticImportString 得到更多例子.

CharacterEncoding  (1)

错误的字符编码会造成准确解释的偏离. 创建一个 Unicode 数据编码的文件:

用默认的字符编码导入数据:

导入数据,指明是用 Unicode 编码生成:

Delimiters  (1)

指明定界符决定值是如何分开的:

指明一个不存在的定界符给出一个由换行符分隔的项目的单列:

ExcludedLines  (1)

在标头选择或进一步处理之前,行通过行号被排除. 以下为原始数据:

排除偶数行号给出排名奇数的建筑物,因为标头行把奇数排名放在偶数行:

HeaderLines  (1)

指定文件中被视为标头的行数:

MissingDataRules  (2)

用"Willis Tower"替代以"Sears"开头的字符串:

在解释之前先应用规则:

应用  (6)

将一张含有从伦敦到很多国家的飞行费用的表作为一个 Dataset 对象导入:

获得伦敦的地理位置:

获得一次飞行的最贵价格:

制作一个地图,蓝色显示最便宜的飞行路线,橙色显示最贵的飞行路线:

为一个私人电子邮件的时间轴导入数据:

得到"family"类的值:

绘制每月电子邮件数:

从一张大学教职工的工资表中导入第一列和第三列:

绘制结果:

将一个含有日期和数值的数据集作为 Dataset 对象导入:

获取数据作为一个行的列表:

指明日期应被解释成字符串:

将一个含有一个著名建筑物和其属性的列表的数据集作为一个 Dataset 对象导入. 城市和国家会被自动检测为 Entity 对象:

只导入著名建筑物的名称、国家和高度的列:

可能存在的问题  (3)

自动选择是从比 Interpreter 略为匮乏的类型集合中进行选择:

指明显式类型导入 Entity 对象,而不是字符串:

Automatic 类型指定一个自动选择的列数:

{Automatic} 类型指定一个自动选择的类型的单列:

在一个类型列表的 Automatic 连续应用于与其相对应的列:

默认 Automatic 标头行的选择可能会不正确,这取决于数据是以行还是列的形式组织的:

明确指定标头行数以正确导入数据:

Wolfram Research (2014),SemanticImport,Wolfram 语言函数,https://reference.wolfram.com/language/ref/SemanticImport.html (更新于 2016 年).

文本

Wolfram Research (2014),SemanticImport,Wolfram 语言函数,https://reference.wolfram.com/language/ref/SemanticImport.html (更新于 2016 年).

CMS

Wolfram 语言. 2014. "SemanticImport." Wolfram 语言与系统参考资料中心. Wolfram Research. 最新版本 2016. https://reference.wolfram.com/language/ref/SemanticImport.html.

APA

Wolfram 语言. (2014). SemanticImport. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/SemanticImport.html 年

BibTeX

@misc{reference.wolfram_2024_semanticimport, author="Wolfram Research", title="{SemanticImport}", year="2016", howpublished="\url{https://reference.wolfram.com/language/ref/SemanticImport.html}", note=[Accessed: 23-November-2024 ]}

BibLaTeX

@online{reference.wolfram_2024_semanticimport, organization={Wolfram Research}, title={SemanticImport}, year={2016}, url={https://reference.wolfram.com/language/ref/SemanticImport.html}, note=[Accessed: 23-November-2024 ]}