日期过滤器问题 (python)
Date filter problems (python)
我在从我的数据框中过滤特定日期期间时遇到一些问题。
例如我需要 14/09/2014 - 30/09/2020 之间的日期。为此,我使用了
df = df.loc[(df['date'] >= '14/09/2014') and (df['date'] <= '30/08/2020')]
(值错误)以及
df = df.loc['14/09/2014':'30/08/2020']
--> 哪种有效,但它也显示了特定范围之外的日期(例如 12/09/1965)。
更多信息:我将日期列 ('edate') 设置为索引列,请参见以下代码:
df = pd.read_csv('https://manifestoproject.wzb.eu/down/data/2020b/datasets/MPDataset_MPDS2020b.csv', parse_dates=['date'], index_col='edate')
此外,我使用 dtale 通过本地主机显示结果。
有人可以解释为什么它会显示超出范围的更多日期(当使用 14/09/2014:30/08/2020 的代码时)吗?另外,如果有人能解决我的问题,我将不胜感激!
此致
有 2 个问题 - 使用按位 and
&
并且按日期时间进行比较需要格式 YYYY-MM-DD
:
df = df[(df['date'] >= '2014-09-14') &(df['date'] <= '2020-08-30')]
检查数据:
#original data
print (len(df))
4656
#only changed and to &
df1 = df.loc[(df['date'] >= '14/09/2014') & (df['date'] <= '30/08/2020')]
print (len(df1))
4656
# changed and to & and format YYYY-MM-DD
df1 = df[(df['date'] >= '2014-09-14') &(df['date'] <= '2020-08-30')]
print (len(df1))
585
我在从我的数据框中过滤特定日期期间时遇到一些问题。
例如我需要 14/09/2014 - 30/09/2020 之间的日期。为此,我使用了
df = df.loc[(df['date'] >= '14/09/2014') and (df['date'] <= '30/08/2020')]
(值错误)以及
df = df.loc['14/09/2014':'30/08/2020']
--> 哪种有效,但它也显示了特定范围之外的日期(例如 12/09/1965)。
更多信息:我将日期列 ('edate') 设置为索引列,请参见以下代码:
df = pd.read_csv('https://manifestoproject.wzb.eu/down/data/2020b/datasets/MPDataset_MPDS2020b.csv', parse_dates=['date'], index_col='edate')
此外,我使用 dtale 通过本地主机显示结果。
有人可以解释为什么它会显示超出范围的更多日期(当使用 14/09/2014:30/08/2020 的代码时)吗?另外,如果有人能解决我的问题,我将不胜感激!
此致
有 2 个问题 - 使用按位 and
&
并且按日期时间进行比较需要格式 YYYY-MM-DD
:
df = df[(df['date'] >= '2014-09-14') &(df['date'] <= '2020-08-30')]
检查数据:
#original data
print (len(df))
4656
#only changed and to &
df1 = df.loc[(df['date'] >= '14/09/2014') & (df['date'] <= '30/08/2020')]
print (len(df1))
4656
# changed and to & and format YYYY-MM-DD
df1 = df[(df['date'] >= '2014-09-14') &(df['date'] <= '2020-08-30')]
print (len(df1))
585