def create_filter(self, field: str) -> None: big_boxes = [] dtype = self.df[field].dtype.name if 'float' in dtype: slider = FloatSlider slide = slider(min=self.df[field].min(), max=self.df[field].max(), step=0.001) elif 'int' in dtype: slider = IntSlider slide = slider( min=self.df[field].min(), max=self.df[field].max(), ) else: print(f"filter of {dtype} not supported") slider = SelectionSlider slide = slider(options=sorted(map(str, set(list(self.df[field]))))) btn = Button(description="Run Filter") btn.on_click(self.execute_filter) print(f"NaN count: {(self.df[field].isna()).sum()}") widget = VBox([ Label(f"Range for {field}"), Dropdown(options=[ "Larger Than or equal to", "Smaller Than or equal to" ]), slide, Checkbox(description="Remove NaN", value=True), btn ]) self.widget = widget widget.original_name = field display(widget)