过滤过去x天的熊猫数据框

Jos*_*osh 6 python datetime pandas

我有一个带有日期列的数据框,该列每天都会更新。我只想用过去30天的数据创建一个副本。

我根据对R的了解了解了以下语法:

df[df[date]>dt.date.today()-30]
Run Code Online (Sandbox Code Playgroud)

日期列不是索引,但我不反对这样做,如果有帮助的话!

谢谢!

Tur*_*zzy 9

尝试这个:

import datetime
import pandas as pd 


df[df.the_date_column > datetime.datetime.now() - pd.to_timedelta("30day")]
Run Code Online (Sandbox Code Playgroud)

更新:由乔什建议编辑。

  • 美丽。我必须做的一点微调是`df [df.the_date_column> datetime.datetime.now()-pd.to_timedelta(“ 30day”)]` (4认同)
  • 很不错。但是,如果 df.the_date_column 是 tz 感知的,那么您将遇到“TypeError:无法比较 tz-naive 和 tz 感知的类似日期时间的对象”的错误。然后,您将能够通过用 pytz.utc.localize(datetime.datetime.now()) 替换 datetime.datetime.now() 来增强 Turtrelzzy 解决方案。不要忘记先导入 pytz。 (3认同)