如何解决如何过滤给定时间范围内的数据帧?
我有一个每周更新的数据框,我想删除6个月以上的数据
例如:
从一月到现在,我都有一个数据框。
现在是9月14日,我想删除旧数据,在这种情况下是从1月到3月14日。
在我们是12月的情况下,从6月到12月,依此类推。
谢谢
解决方法
- 月份是任意时间段,因为长度会发生变化
- 使用minimal reproducible example并针对当前日期减去182天进行过滤
- 或者,使用python
relativedelta
模块中的dateutil
,它可以完成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)]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。