python - 在熊猫数据框中排除超过 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 岁的日期
解决方案
然后只需添加条件
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]
推荐阅读
- bash - SGE 传递队列相关参数以确定使用哪个编译器
- html - 将图像与右中 html 对齐
- c++ - 埃拉托色尼筛的 MPI 并行编程。仅内部循环
- python - Django migrate 不会在 Elastic Beanstalk 上创建任何迁移
- php - Laravel: How to implement if statement within {{ }}
- python - 循环中的函数导致无限循环
- javascript - 从脚本更改其值时,HTML文本框仅在单击时刷新?
- bash - How to check if user input is in correct format?
- php - ¿How to use "readfile" if my file is outside the current folder?
- java - How to use compareTo method with generic T type?