Отфильтруйте pandas DataFrame с входными данными из ipywidget.Text и отредактируйте результат в Jupyter с помощью ipysheet. - PullRequest
2 голосов
/ 27 января 2020

У меня есть 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})

This входные данные состоят из значений, разделенных запятыми, и это должно быть основой для фильтрации кадра данных.

Я создал этот фиктивный кадр данных:

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_option функция, передаваемая в переменные get, состоит из вывода виджетов, поэтому я не вижу способ передачи также других данных помимо выходных данных виджета, например, как передать кадр данных для дальнейшего заполнения ipysheet.

Документация: https://ipywidgets.readthedocs.io/en/latest/examples/Output%20Widget.html Например, в разделе «Вывод виджетов в качестве Основа для взаимодействия »виджеты связаны с функцией, которая принимает выходные данные ползунков, но я все равно не вижу, чтобы добавить больше входных данных для связанной функции.

Спасибо enter image description here

...