python - dtale 在用户输入后重新加载数据单元
问题描述
我有这个 python 脚本:
import pandas as pd
import dtale
#import dtale.app as dtale_app
df = pd.DataFrame([dict(firstname="cris", lastname="zane"),
dict(firstname="joe",lastname="biden"),
dict(firstname="kamala",lastname="harris")])
search_query = ""
print("Hi once you want to stop just enter stop")
while search_query != "stop":
search_query = input("Enter your search query: ")
print(search_query)
d = dtale.show(df.loc[df["firstname"]==search_query,:],ignore_duplicates=True)
print(d._url)
它需要用户输入来过滤数据帧,然后将其传递给 dtale.show() 方法。但是,数据视图不会改变。例如,用户首先在数据框中搜索 joe,然后再搜索 kamala。
Hi once you want to stop just enter stop
Enter your search query: joe
joe
http://Cristians-MBP:40000
Enter your search query: kamala
kamala
http://Cristians-MBP:40000
Enter your search query: kamala
kamala
http://Cristians-MBP:40000
Enter your search query:
但是即使在刷新并单击重新加载数据后视图也不会更新。数据视图仍然显示之前的视图:
我相信通过在 dtale.show() 方法中设置参数 ignore_duplicates=True 应该会阻止它加载以前加载的数据,但它仍然会这样做。
解决方案
如果您更改代码以运行
print(d._main_url)
代替
print(d._url)
那应该可以解决您的问题。“_url”是运行 D-Tale 的 URL 的基础。该属性可能应该重命名为“_origin”而不是“_url”。“_main_url”还包括您刚刚加载的数据的路由(例如:/dtale/main/1)。
你也可以运行
dtale.instances()
这将打印出当前加载到 D-Tale 中的所有数据及其完整 URL。
推荐阅读
- javascript - RootNavigation.navigate 未导航到指定屏幕
- xamarin - UI 绑定在 Android 设备的 xamarin 表单中不起作用
- reactjs - 将 location.pathname 反应到(自定义)标题
- specflow - Allure Specflow 3.5.0.4 抛出异常 System.MissingMethodException: Method not found: 'Void BoDi.ObjectContainer.RegisterTypeAs(System.String)"
- go - 从 pod 的 NodeSelectorTerms 访问 Operator 字段
- mysql - 如何在 MySQL Prepared Statement 中包含“”?
- django - React Monaco Editor 与 python 语言服务器 - Django 后端
- java - 无法在 Docker 上运行或连接 Portgresql 容器
- python - 表提取:将包含文件名和原始文件路径的列添加到 df
- msbuild - 带有 appveyor 的 Msbuild 条件构造