【问题标题】:Date filter not applied on localhost (but via Jupyter)日期过滤器未应用于本地主机(但通过 Jupyter)
【发布时间】:2021-11-28 08:46:39
【问题描述】:

需要为我的数据框应用日期过滤器(例如,仅显示 14/09/2014 和 30/08/2020 之间的数据行)。

到目前为止,我的代码如下所示:

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')
d = dtale.show(df)
df.loc['14/09/2014':'30/08/2020']
d.open_browser()

(如您所见,我正在使用 d-tale,因为我对编码完全陌生,但需要为我的研究项目分析大量数据。)日期过滤器应用于 VSC(我使用 Jupyter notebook这样我就可以正确检查和运行每个步骤),它显示了我需要的结果,但是一旦我运行d.open_browser(),过滤器就不会应用到我的本地主机页面上。你有什么想法可能是什么原因吗?

感谢您的帮助!

【问题讨论】:

    标签: python python-3.x pandas jupyter-notebook jupyter


    【解决方案1】:

    似乎您应该在过滤数据框后在 dtale 上显示您的数据框

    df.loc['14/09/2014':'30/08/2020']
    d = dtale.show(df) 
    

    【讨论】:

    • 已经试过了,不会改变结果:/过滤器仍然没有应用
    • 你的日期列是索引列吗?
    • 我想是的,在pd.read_csv中使用了index_col='edate'
    • ok 发现您应该将过滤器数据分配给变量df=df.loc['14/09/2014':'30/08/2020]
    • 咳咳,你的天啊!!非常感谢您的帮助 --> 成功了!似乎在给定日期之外也有结果,这是为什么呢?它应该只显示 14/09/2014 和 30/08/2020 之间的结果,但它也显示例如12/09/1965 --> 已经尝试过 >= 等,但总是语法错误
    猜你喜欢
    • 2015-01-01
    • 2012-03-12
    • 1970-01-01
    • 2012-10-05
    • 2022-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-09
    相关资源
    最近更新 更多