Orange canvas is a good, high-performance data mining app.
https://orange.biolab.si/

installing it using pip:
python -m pip install PyQt5 PyQtWebEngine orange3
( need latest python 3, like 3.7+ )
( April 2020, python3.8 easy fix: https://github.com/conda-forge/pyqtgraph-feedstock/issues/10 if there is an error with pyqtgraph\ptime.py , need to replace in this file .clock() by .perf_counter()
)
running it:
python -m Orange.canvas

Orange is very easy to use and reasonably responsive.

But it is a bit limited with data preprocessing,
but Here I present a workaround:

from Orange.data.pandas_compat import table_from_frame,table_to_frame
df= table_to_frame(in_data)
#here you go
out_data = table_from_frame(df)

Now I can take a function of temporizing data series, like the following and convert it to Orange with ease

def create_dataset(dataset, look_back=1):
dataX, dataY = [], []
for i in range(len(dataset)-look_back-1):
a = dataset[i:(i+look_back), 0]
dataX.append(a)
dataY.append(dataset[i + look_back, 0])
return numpy.array(dataX), numpy.array(dataY)

The result is, like this:

from Orange.data.pandas_compat import table_from_frame,table_to_frame
import numpy as np
import pandas as pd

df= table_to_frame(in_data)

dataset=df["pfd"].values
 
look_back=20
samples=[]
for i in range(len(dataset)-look_back):
    samples.append(dataset[i:(i+look_back)])
 
numpy_samples=np.array(samples)
samples_titles=[ "p"+str(i+1) for i in range(look_back)] 
df = pd.DataFrame(data=numpy_samples, columns=samples_titles)
out_data = table_from_frame(df)