首页 > 解决方案 > 在熊猫数据框中排除超过 500 年的日期

问题描述

我有一个包含日期列的数据框。一些日期缺失(空),一些日期在 1500 年。

我只想获取日期在过去 10 年内或缺失的那些行。

由于 Pandas 的时间范围为 584 年,因此我这样做是为了避免引发错误:

import arrow as ar
import pandas as pd

df[(pd.to_datetime(df['date'], errors = 'coerce') >= ar.utcnow().shift(days=-3650).date())]

但是,这也摆脱了缺少日期的行,我不希望这样。有没有办法排除日期 > 10 岁,但不排除这个数据框的缺失日期,它也有 > 500 岁的日期

标签: pythonpandas

解决方案


然后只需添加条件

con1=(pd.to_datetime(df['date'], errors = 'coerce') >= ar.utcnow().shift(days=-3650).date())
con2=pd.to_datetime(df['date'], errors = 'coerce').isnull()

df.loc[con1|con2]

推荐阅读