Puede invocar las API nativas de Python desde los scripts para interactuar con SPSS Modeler.
Se da soporte a las API siguientes.
Para ver un ejemplo, puede descargar el flujo de muestra.python-extension-str.zip e importarlo aSPSS Modeler (en el Activos pestaña, haga clic . A continuación, abra las propiedades del nodo de extensión en el flujo para ver la sintaxis de ejemplo.
API para modelos de datos
modelerpy.isComputeDataModelOnly()
Puede utilizar esta API para comprobar si una ejecución actual es para calcular los datos de salida o solo para calcular el modelo de datos de salida. Cuando devuelve
true
, el script no debe realizar ninguna tarea que dependa de los datos de entrada o salida; de lo contrario, la ejecución fallará.modelerpy.getDataModel()
Esta API se pone en contacto con SPSS Modeler para obtener el modelo de datos para un conjunto de datos de entrada. El valor de retorno es una instancia de
class DataModel
, que describe los metadatos del conjunto de datos de entrada, incluidos el recuento de campos, el nombre de campo, el tipo de almacenamiento de campo, etc.modelerpy.setOutputDataModel(dataModel)
Esta API envía una instancia de una clase
DataModel
de nuevo a SPSS Modeler, y debe invocarse antes de que el script pase un conjunto de datos a SPSS Modeler. SPSS Modeler utiliza los metadatos que se describen en esta instancia deDataModel
para manejar los datos en el lado de SPSS Modeler .
API para modelado
modelerpy.saveModel(model, name='model')
Esta API transforma un modelo Python en un modelo SPSS Modeler , que a continuación guarda SPSS Modeler . El modelo guardado se copia en un nugget de modelo generado. Invoque esta API desde un nodo de modelado cuando se genere un modelo Python .
modelerpy.loadModel(name='model')
Esta API carga un modelo guardado de SPSS Modeler y crea un objeto Python para el modelo guardado. Invoque esta API desde el nugget de modelo para cargar el modelo guardado para un proceso adicional, como la puntuación.
API para conjuntos de datos de entrada/salida
modelerpy.readPandasDataframe()
Esta API lee un conjunto de datos de SPSS Modeler a Python. El valor de retorno es un Python Pandas DataFrame (una estructura de datos bidimensional, como una matriz bidimensional, o una tabla con filas y columnas).
modelerpy.writePandasDataframe(df)
Esta API escribe un Python Pandas DataFrame de Python en SPSS Modeler.
API para paquetes
modelerpy.installPackage(package)
Esta API extrae un paquete de
pypi.org
y lo instala.modelerpy.uninstallPackage(package)
Esta API desinstala un paquete instalado.
modelerpy.listPackages()
Esta API proporciona una lista de todos los paquetes instalados.
API para metadatos
Utilice las siguientes clases relacionadas con metadatos conmodelerpy.getDataModel
y modelerpy.setOutputDataModel
.modelerpy.DataModel
Esta API es la clase de entrada principal para los metadatos. Contiene una matriz de instancias de
class Field
e incluye los métodos siguientesmodelerpy.DataModel.getFields
Este método devuelve la matriz de instancias de
class Field
.modelerpy.DataModel.addField
Este método añade una instancia de
Field
a la matriz de metadatos.modelerpy.Field
La clase
Field
es donde se almacena la información de metadatos real, incluido el nombre de campo, el almacenamiento y la medición,modelerpy.Field.getName
Este método devuelve el nombre del campo.
modelerpy.Field.getStorage
Este método devuelve el almacenamiento del campo. El almacenamiento válido incluye:
integer
,real
,string
,date
,time
ytimestamp
.modelerpy.Field.getMeasure
Este método devuelve la medida del campo. Las medidas válidas incluyen:
discrete
,flag
,nominal
,ordinal
ycontinuous
.
DataModel
invocando el constructor modelerpy.DataModel
con una matriz de modelerpy.Field
. El constructor modelerpy.Field
acepta el nombre de campo, el almacenamiento de campo y la medición de campo como sus parámetros de entrada (el almacenamiento de campo y la medición de campo son obligatorios; la medición de campo es opcional).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"))