Pandas DataFrame仅按起始日期或筛选到最新日期的实现方法
Pandas 自定义日期范围筛选实现方案
前置校验
首先确保TIME STAMP列为datetime格式,避免字符串比较出现逻辑错误:
df1['TIME STAMP'] = pd.to_datetime(df1['TIME STAMP'])
需求1:结束日期取DataFrame内现存的最晚日期
实现逻辑是把between的右边界替换为时间列的最大值即可:
# 提取数据集内最晚的时间值 end_date = df1['TIME STAMP'].max() df1 = df1[df1['TIME STAMP'].between('2021-01-27 00:00:00', end_date)]
注:该需求等价于筛选所有大于等于起始日期的数据,可直接复用需求2的实现写法
需求2:仅筛选大于等于指定起始日期的数据
两种常用实现可选:
- 写法1:直接做数值比较,语法简洁
df1 = df1[df1['TIME STAMP'] >= '2021-01-27 00:00:00']
- 写法2:沿用
between语法,右边界传入Pandas支持的最大时间戳,等价于时间无上限,后续如果需要补充结束时间限制修改成本更低
df1 = df1[df1['TIME STAMP'].between('2021-01-27 00:00:00', pd.Timestamp.max)]
内容的提问来源于stack exchange,提问作者Chio
相关产品推荐
相关产品推荐

