选择日期列的两个日期之间的数据框

时间:2018-04-25 05:04:43

标签: pandas date dataframe

我想基于日期列对数据框进行子集化,该日期列最初具有以下格式:

3/22/13

将其转换为日期后:

df['date']=pd.to_datetime(df['date'], format='%m/%d/%y')

我明白了:

2013-03-22 00:00:00

现在我想用以下内容对其进行分类:

 df.loc[(df['date']>'2014-06-22')]

但是要么给我一个空的数据帧或完整的数据帧,那就没有过滤。

我有什么建议可以让它发挥作用吗?

备注:我很清楚其他论坛也提出了类似的问题,但我找不到解决方案,因为我的日期列看起来不同。

1 个答案:

答案 0 :(得分:2)

首先,您必须将开始日期和最终日期转换为日期时间格式。然后,您可以在df.loc中应用多个条件。不要忘记将修改重新分配给你的df:

import pandas as pd
from datetime import datetime

df['date']=pd.to_datetime(df['date'], format='%m/%d/%y')

date1 = datetime.strptime('2013-03-23', '%Y-%m-%d')
date2 = datetime.strptime('2013-03-25', '%Y-%m-%d')

df = df.loc[(df['date']>date1) & (df['date']<date2)]