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

Nic*_*lia 0 date dataframe pandas

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

3/22/13
Run Code Online (Sandbox Code Playgroud)

在我将其转换为日期后:

df['date']=pd.to_datetime(df['date'], format='%m/%d/%y')
Run Code Online (Sandbox Code Playgroud)

我明白了:

2013-03-22 00:00:00
Run Code Online (Sandbox Code Playgroud)

现在我想用这样的子集:

 df.loc[(df['date']>'2014-06-22')]
Run Code Online (Sandbox Code Playgroud)

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

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

备注:我很清楚在其他论坛上也有人问过类似的问题,但由于我的日期列看起来不同,我无法找到解决方案。

Cha*_*s R 5

首先,您必须将开始日期和最终日期转换为日期时间格式。然后你可以在 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)]
Run Code Online (Sandbox Code Playgroud)