Reemplazando nodos con Python Script

KNIME ofrece muchas facilidades de tipo low code para la generación de flujos de minería de datos, es indudable. Su colección de nodos funcionales es amplia y variada.

Junto a todo ello, podemos permitirnos además la utilización del nodo Python Script si nuestros conocimientos en este lenguaje son suficientes. En el ejemplo siguiente podemos reemplazar los seis nodos mostrados con un solo nodo Python y unas cuantas líneas de código. El objetivo es:

  • Cambiar el nombre de la primera columna y añadirle un valor constante de fecha y cambiar la columna a tipo fecha.
  • Eliminar los signos «-» de una columna y cambiar el tipo a numerico.
  • Eliminar los signos «-» de una columna de fechas y cambiar el tipo a fecha.
Simplificar en mayor medida los flujos de Knime es posible con el uso de scripts en Python o R con un nivel básico de conocimientos.

Configuración de Python Script:

import knime_io as knio
import pandas as pd

# Load the first input table.
df = knio.input_tables[0].to_pandas()


columnas = list(df.columns.values)

df.iloc[:,0] = columnas[0]
# change the name to the first column
columnas[0] = 'Fecha'
df.columns = columnas

# replace '-' value in some columns
df["LINEA TASA"] = df["LINEA TASA"].apply(lambda x:x.replace("-", ""))
df["FECHA DE VENCIMIENTO"] = df["FECHA DE VENCIMIENTO"].replace("-","")

## Change column type (string to date)
format = '%Y-%m-%d'
df["Fecha"] = pd.to_datetime(df["Fecha"], format= format).dt.date
df["FECHA DE VENCIMIENTO"] = pd.to_datetime(df["FECHA DE VENCIMIENTO"], format= format).dt.date

## Change column type (string to numeric)
df["LINEA TASA"] = df["LINEA TASA"].apply(pd.to_numeric)


# Pass the transformed table to the first output port of the node.
knio.output_tables[0] = knio.write_table(df)