Ipywidgets interact 不會(huì)將 datepicker 應(yīng)用于 DataFrame
我正在構(gòu)建一個(gè)jupyter筆記本,它使用一些交互式小部件來幫助移動(dòng)一些數(shù)據(jù)幀。我的 jupyter 和 python 經(jīng)驗(yàn)有限,到目前為止,我的大多數(shù)筆記本都在重新創(chuàng)建我之前在一系列 Excel 數(shù)據(jù)透視表中創(chuàng)建的合并和計(jì)算。第一次嘗試交互式小部件工作正常。它調(diào)用數(shù)據(jù)幀,并使用滑動(dòng)小部件通過列的結(jié)果(作業(yè)打開的天數(shù))來限制返回的行:from ipywidgets import interact, interactive, fixed, interact_manualimport ipywidgets as widgets@interactdef days_open_widget(column='days_open', x=(0,2000,5)): return df.loc[df[column] > x]接下來,我希望能夠使用兩個(gè)日期選取器分別瀏覽 DataFrame,以按作業(yè)創(chuàng)建日期約束結(jié)果。它的一部分正在工作,就像日期拾取器填充最早和最晚的日期,但它們不與數(shù)據(jù)幀綁定。代碼如下:interact(df, start_date=widgets.DatePicker(value=df.assignment_creation_date.min()), end_date=widgets.DatePicker(value=df.assignment_creation_date.max()))Jupyter 顯示日期拾取器后,它會(huì)跟蹤以下錯(cuò)誤,然后顯示未篩選的數(shù)據(jù)幀。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我不確定我錯(cuò)過了什么。我不確定為什么嘗試訪問DataFrame時(shí),當(dāng)我之前訪問它時(shí),它會(huì)給我一個(gè)“對(duì)象不可調(diào)用”錯(cuò)誤,或者為什么DatePickers成功讀取DataFrame列,但隨后斷開連接。我嘗試創(chuàng)建的行為將調(diào)用整個(gè)數(shù)據(jù)幀,但讓我篩選從日期選取器中選擇的日期之間的結(jié)果行。我錯(cuò)過了什么?編輯:我知道代碼很混亂,事后看來,我不認(rèn)為我應(yīng)該單獨(dú)導(dǎo)入交互,交互式,固定interact_manual,然后導(dǎo)入所有ipywidgets。編輯2:我無法讓AC24的解決方案工作,但我認(rèn)為這更多地與我自己無法正確定義過濾數(shù)據(jù)幀的函數(shù)有關(guān)。我最終找到了QGrid,它有一個(gè)日期拾取器以及其他過濾器。有關(guān)QGrid的更多信息,https://qgrid.readthedocs.io/en/latest/ 但如果有人對(duì)如何定義函數(shù)以將數(shù)據(jù)幀作為函數(shù)傳遞有更明確的描述,請(qǐng)隨時(shí)添加它。
查看完整描述