使用ipywidget.Text中的输入数据筛选数据帧,并使用ipysheet在Jupyter中编辑结果

2024-06-09 23:07:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个pandas数据框,我想根据jupyter笔记本中输入的用户数据进行过滤

应使用ipywidget输入数据:

import ipywidgets as widgets
import ipysheet

csv_input =widgets.Text(
    value='a,b,c,...',
    placeholder='Enter the words',
    description='CSV words:',
    disabled=False   
    )
def f(csv):
    global cdf
    list_of_words=csv.split(',')
    for word in list_of_words:
        print(word)
    #HERE SOMEHOW THE CODE TO GENERATE A DF FROM FILTERING CDF BASED ON IMPUT VALUES
    # how do I pass the dataframe to this function? 


out = widgets.interactive_output(f, {'csv': csv_input})

此输入包含逗号分隔的值,这应该是筛选数据帧的基础

我创建了这个虚拟数据帧:

list1 = ['computer','ipad','handy','headphones','milk']
list2 = ['bread','milk','ham','chocolate','yogurth','ipad']
list3 = ['table','chair','sofa','glass','plate','bottle','java']
list4 = ['python','java','c++','julia','basic','milk','ham']

data = [list1,list2,list3,list4]
names = ['electro','food','furniture','software']
columns = ['name','data']

cdf=pd.DataFrame(columns=columns)
cdf.data = data
cdf.name = names
cdf

我正在寻找一种方法,将ipywidtext(文本输入)与一个输出链接起来,该输出将通过使用用户输入的单词过滤df而产生

注意:我在过滤数据帧时没有遇到问题。关于将ipywidget与数据帧链接以过滤数据帧,并从过滤结果中使用ipysheet打印出来。 过滤包括显示出现用户输入的任何单词的名称列表

编辑信息: 当使用interactive_选项时,函数传入了由小部件输出组成的get变量,因此我看不到传递小部件输出之外的其他数据的方法,即如何传递数据帧以进一步填充ipysheet

文件: https://ipywidgets.readthedocs.io/en/latest/examples/Output%20Widget.html 例如,在“输出小部件作为交互的基础”中,小部件链接到一个函数,该函数接收滑块的输出,但是无论如何,我都不知道如何向链接函数添加更多的输入。p>

谢谢 enter image description here


Tags: columnscsv数据函数用户importdata链接