我想基于日期列对数据框进行子集化,该日期列最初具有以下格式:
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')]
但是要么给我一个空的数据帧或完整的数据帧,那就没有过滤。
我有什么建议可以让它发挥作用吗?
备注:我很清楚其他论坛也提出了类似的问题,但我找不到解决方案,因为我的日期列看起来不同。
答案 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)]