Я создаю блокнот Jupyter, в котором используются интерактивные виджеты для перемещения по некоторым кадрам данных. Мой опыт работы с jupyter и python ограничен, и большая часть моей записной книжки до сих пор воссоздает консолидации и вычисления, которые я ранее создал в серии сводных таблиц Excel.
Первая попытка интерактивного виджета работала нормально. Он вызывает фрейм данных со скользящим виджетом для ограничения возвращаемых строк по результату столбца (сколько дней было открыто назначение):
from ipywidgets import interact, interactive, fixed, interact_manual
import ipywidgets as widgets
@interact
def days_open_widget(column='days_open', x=(0,2000,5)):
return df.loc[df[column] > x]
Далее я хотел иметь возможность отдельно исследовать В DataFrame используются два средства выбора даты, чтобы ограничить результаты датой создания назначения. Части этого работают, как средства выбора даты, заполненные самыми ранними и самыми поздними датами, но они не привязаны к фрейму данных. Вот код:
interact(df,
start_date=widgets.DatePicker(value=df.assignment_creation_date.min()),
end_date=widgets.DatePicker(value=df.assignment_creation_date.max()))
После того, как Jupyter отобразит указатели даты, он выдаст следующую ошибку, затем отобразит нефильтрованный фрейм данных.
TypeError Traceback (most recent call last)
C:\ProgramData\Anaconda3\lib\site-packages\ipywidgets\widgets\interaction.py in update(self, *args)
254 value = widget.get_interact_value()
255 self.kwargs[widget._kwarg] = value
--> 256 self.result = self.f(**self.kwargs)
257 show_inline_matplotlib_plots()
258 if self.auto_display and self.result is not None:
TypeError: 'DataFrame' object is not callable
Я не уверен, что я ' м отсутствует. Я не уверен, почему при попытке доступа к DataFrame возникает ошибка «объект не вызывается», когда я обращался к нему ранее, или почему DatePickers успешно читает столбец DataFrame, но затем отключается.
Поведение Я пытаюсь создать вызов бы весь фрейм данных, но позвольте мне отфильтровать результирующие строки между датами, выбранными из выбора даты. Чего мне не хватает?
Редактировать: я знаю, что код грязный и задним числом, я не думаю, что я должен импортировать интерактивный, интерактивный, фиксированный, интерактивный_мануал отдельно, а затем импортировать все ipywidgets.
Редактировать 2: Я не смог заставить работать решение AC24, но я думаю, что это больше связано с моей неспособностью правильно определить функцию, которая отфильтровывала фрейм данных. Вместо этого я нашел QGrid, в котором есть средство выбора даты вместе с другими фильтрами.
Дополнительная информация о QGrid: https://qgrid.readthedocs.io/en/latest/, но если у кого-то есть более четкое описание того, как определить функцию чтобы передать фрейм данных как функцию, добавьте его.