您可以从脚本中调用本机 Python API ,以与 SPSS Modeler进行交互。
支持以下 API。
要查看示例,您可以下载示例流python-extension-str.zip并将其导入SPSS Modeler(在里面资产选项卡,点击。 然后打开流中的 "扩展" 节点属性以查看示例语法。
用于数据模型的 API
modelerpy.isComputeDataModelOnly()
您可以使用此 API 来检查当前运行是计算输出数据还是仅计算输出数据模型。 当它返回
true
时,脚本 不得 执行依赖于输入或输出数据的任何任务,否则运行将失败。modelerpy.getDataModel()
此 API 联系 SPSS Modeler 以获取输入数据集的数据模型。 返回值是
class DataModel
的实例,它描述输入数据集的元数据,包括字段计数,字段名称,字段存储类型等。modelerpy.setOutputDataModel(dataModel)
此 API 将类
DataModel
的实例发送回 SPSS Modeler,并且必须在脚本将数据集传递到 SPSS Modeler之前调用此 API。 SPSS Modeler 使用此DataModel
实例中描述的元数据来处理 SPSS Modeler 端上的数据。
用于建模的 API
modelerpy.saveModel(model, name='model')
此 API 将 Python 模型转换为 SPSS Modeler 模型,然后 SPSS Modeler 保存该模型。 保存的模型将复制到生成的模型块。 构建 Python 模型时,从建模节点调用此 API。
modelerpy.loadModel(name='model')
此 API 将装入 SPSS Modeler 保存的模型,并为保存的模型创建 Python 对象。 从模型块调用此 API 以装入保存的模型进行进一步处理,例如评分。
输入/输出数据集的 API
modelerpy.readPandasDataframe()
此 API 将数据集从 SPSS Modeler 读取到 Python。 返回值为 Python Pandas DataFrame (二维数据结构,例如二维数组或包含行和列的表)。
modelerpy.writePandasDataframe(df)
此 API 将 Python Pandas DataFrame 从 Python 写入 SPSS Modeler。
软件包的 API
modelerpy.installPackage(package)
此 API 从
pypi.org
中拉取软件包并将其安装。modelerpy.uninstallPackage(package)
此 API 将卸载已安装的软件包。
modelerpy.listPackages()
此 API 提供所有已安装软件包的列表。
用于元数据的 API
将以下与元数据相关的类与modelerpy.getDataModel
和 modelerpy.setOutputDataModel
配合使用。modelerpy.DataModel
此 API 是元数据的主条目类。 它包含
class Field
的实例数组,并包含以下方法modelerpy.DataModel.getFields
此方法返回
class Field
实例的数组。modelerpy.DataModel.addField
此方法将
Field
的实例添加到元数据数组。modelerpy.Field
Field
类是存储实际元数据信息的位置,包括字段名称,存储和度量。modelerpy.Field.getName
此方法返回字段的名称。
modelerpy.Field.getStorage
此方法返回字段的存储。 有效存储器包括:
integer
,real
,string
,date
,time
和timestamp
。modelerpy.Field.getMeasure
此方法返回字段的测量。 有效度量包括:
discrete
,flag
,nominal
,ordinal
和continuous
。
modelerpy.Field
数组调用 modelerpy.DataModel
构造函数来构造 DataModel
对象。 modelerpy.Field
构造函数接受字段名,字段存储和字段测量作为其输入参数 (字段存储和字段测量是必需的; 字段测量是可选的)。dataModel = modelerpy.DataModel([
# %FieldName%, %StorageType%, %MeasurementType%
modelerpy.Field(‘StringField’, ‘string’, ‘nominal’),
modelerpy.Field(‘FloatField’, ‘real’, ‘continuous’),
modelerpy.Field(‘IntegerField’, ‘integer’, ‘ordinal’),
modelerpy.Field(‘BooleanField’, ‘integer’, ‘flag’),
modelerpy.Field(‘DatetimeField’, ‘timestamp’, ‘continuous’),
modelerpy.Field(‘TimeField’, ‘time’, ‘continuous’),
modelerpy.Field(‘DateField’, ‘date’, ‘continuous’),
])
# StorageType could be: integer, real, string, date, time, timestamp
# MeasurementType could be: discrete, flag, nominal, ordinal, continuous
outputDataModel = modelerDataModel
outputDataModel.addField(modelerpy.Field(field_outlier, "real", measure="flag"))
outputDataModel.addField(modelerpy.Field(field_dist_hp, "real", measure="continuous"))