【问题标题】:How to use .loc to filter based on date fields如何使用 .loc 根据日期字段进行过滤
【发布时间】:2019-10-24 09:59:23
【问题描述】:

最近我开始使用 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 Traceback(最近一次调用最后一次)

现在,我尝试了对日期字段进行各种不同的转换,但仍然出现相同的错误。是否可以使用 .loc 过滤日期?

【问题讨论】:

标签: python pandas jupyter


【解决方案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']

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-03-29
    • 1970-01-01
    • 2017-01-15
    • 2020-03-31
    • 2019-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多