dtale日期筛选在Jupyter生效但localhost页面未生效是什么原因
问题原因
- 第一个问题是代码执行顺序错误:你调用
dtale.show(df)时传入的是未筛选的原始DataFrame,后续执行的筛选操作和dtale已经加载的数据集完全无关,不会同步到dtale的页面中。 - 第二个问题是筛选结果未保存:
df.loc['14/09/2014':'30/08/2020']只是返回了一个符合规则的临时切片,不会修改原df本身,你没有把这个切片赋值给变量传入dtale,自然不会生效。
修正方案
调整代码顺序,先完成数据筛选,再把筛选后的结果传入dtale即可。另外建议用YYYY-MM-DD的标准日期格式写筛选条件,避免不同环境下日期解析出现歧义:
import dtale import pandas as pd df = pd.read_csv('https://manifestoproject.wzb.eu/down/data/2020b/datasets/MPDataset_MPDS2020b.csv', parse_dates=['date'], index_col='edate') # 先完成筛选,把结果赋值给新变量 filtered_df = df.loc['2014-09-14':'2020-08-30'] # 再把筛选后的数据传给dtale d = dtale.show(filtered_df) d.open_browser()
补充说明
如果你不想额外生成新变量,也可以直接把筛选逻辑写在dtale.show的参数里,或者把筛选结果覆盖原df,效果是一样的。
内容的提问来源于stack exchange,提问作者l0feic
相关产品推荐
相关产品推荐

