我在我的jupyter笔记本上运行了以下代码:
import pandas as pd
class intData:
def __init__(self, inputPath, fileName):
self.inputPath = inputPath
self.filename = filename
def dataProcess(self, colNames, NewColnames, NewColnamesLog, val):
df = pd.read_csv(self.inputPath + self.filename)
df = df[colNames]
for i, j, k in list(zip(colNames, NewColnames, val)):
df[j] = df[i] + k
return df
finalDataProcess = intData(filepath, filename)
finalDataProcess = finalDataProcess.dataProcess(['A', 'B', 'C'], ['newA','newB','newC'], [2, 3, 4])
在这段代码中,filepath
、filename
、colnames
、newColnames
和val
将发生变化。所以,我想让它具有交互性。将有下拉菜单与列表的filepath
,filename
,colnames
,newColnames
和val
(分别)。当我们选择它们时,我们得到了最终的输出。然后将导出此输出。
有没有人能教我怎么解决这个问题?我更愿意把它放在jupyter笔记本上。但是如果这是不可能的,那么其他的python选项也可以。
谢谢!
发布于 2020-11-20 21:53:45
有一些很好的选择可以帮助你做到这一点!
有一段时间,从你的Jupyter笔记本中的函数创建迷你反应式界面的规范库已经被ipywidgets了,并且仍然是一个很好的选择。您还可以使用Voila将包含这些界面的笔记本转换为仪表板web应用。
一个较新的选项是Panel,它允许您在笔记本电脑甚至独立仪表板中创建复杂的界面。
还有Plotly Dash,它的jupyter-dash库支持在Jupyter笔记本上使用,虽然它更倾向于制作独立的web应用程序,让人感觉更接近现代web平台。
我的建议是从ipywidgets开始(也可以使用Voila )。如果这样做不能满足您的要求,那么可以尝试Panel或Dash。
下面是一个示例,说明如何在与您的类类似的类中使用ipywidgets
:
from ipywidgets import interact
import pandas as pd
class Foo:
def __init__(self, a, b):
self.a = a
self.b = b
def make_df(self, length):
df = pd.DataFrame({"a":[self.a]*length, "b":[self.b]*length})
return df
@interact(a=[1,2,3], b=["x", "y", "z"], length=range(1,11))
def helper(a, b, length):
foo = Foo(a, b)
df = foo.make_df(length)
return df
https://stackoverflow.com/questions/64930386
复制相似问题