如何使用.loc根据日期字段进行过滤

时间:2019-10-24 09:59:23

标签: python pandas jupyter

最近,我开始使用Python,并且一段时间以来一直困扰于与Pandas(特别是.loc)有关的问题。基本上,我只是试图操纵数据框,使其仅保留某些日期范围。

当我过滤一个特定的日期时,该命令可以完美运行,但是一旦切换到某个范围,它就不会运行。另外,任何其他变量类型都可以正常工作-我很惊讶,因为人们必须一直过滤日期。我需要转换日期吗?

# this works perfectly fine
raw_data.loc[raw_data['date_field'] == '2019-06-20', 'id':'date_field']

# this does not
raw_data.loc[raw_data['date_field'] >= '2019-06-20', 'id':'date_field']

我收到类型错误:

TypeError跟踪(最近一次通话最近)

现在,我尝试了对日期字段进行各种不同的转换,但始终遇到相同的错误。可以使用.loc过滤日期吗?

1 个答案:

答案 0 :(得分:1)

我认为这里有必要通过to_datetime将列转换为日期时间:

raw_data['date_field'] = pd.to_datetime(raw_data['date_field'])
raw_data.loc[raw_data['date_field'] >= '2019-06-20', 'id':'date_field']