为了账号安全,请及时绑定邮箱和手机立即绑定

如何过滤给定时间范围内的数据帧?

如何过滤给定时间范围内的数据帧?

不负相思意 2023-08-08 17:57:37
我有一个每周更新的数据框,我想删除超过 6 个月的数据例如:我有一个从一月到现在的数据框。现在是 9 月 14 日,我想删除旧数据,在本例中是从 1 月到 3 月 14 日。如果是在 12 月,则从 6 月到 12 月,依此类推。谢谢
查看完整描述

1 回答

?
HUWWW

TA贡献1874条经验 获得超12个赞

  • 月份是任意时间段,因为长度会变化

  • 使用布尔索引并针对当前日期减去 182 天进行过滤

  • 或者,relativedelta从 pythondateutil模块使用,它可以做months

from datetime import datetime

import pandas as pd

from dateutil.relativedelta import relativedelta as rd


# This line is just for creating test data

df = pd.DataFrame({'datetime': pd.date_range(start='2020-01-01', end=datetime.today(), freq='1d').to_pydatetime().tolist()})


# filter out the everything greater than 182 days

df_updated = df[df.datetime > datetime.today() - pd.Timedelta(days=182)]


# alternatively, use the relativedelta

df_updated = df[df.datetime > datetime.today() - rd(months=6)]


查看完整回答
反对 回复 2023-08-08
  • 1 回答
  • 0 关注
  • 120 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信