You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从已按publishedAt降序排序的Pandas DataFrame提取近24小时数据

获取Pandas DataFrame中过去24小时的数据

嘿,我来帮你搞定这个需求!既然你的DataFrame已经按publishedAt降序排序好了,接下来只需要几步就能提取出过去24小时的数据,咱们一步步来:

步骤1:确保时间列是datetime类型

首先,你的publishedAt列看起来是ISO格式的字符串(比如2018-05-06T15:22:22Z),得先把它转换成Pandas能识别的datetime类型,这样才能做时间运算:

import pandas as pd

# 转换为datetime类型(自动识别UTC时区)
df['publishedAt'] = pd.to_datetime(df['publishedAt'])

步骤2:选择筛选基准时间

这里分两种常见场景,你可以根据自己的需求选:

场景A:相对于当前系统时间的过去24小时

如果你想获取现在往前推24小时内的数据,要注意和你的数据时区保持一致(你的数据是UTC时区,所以用UTC时间计算):

# 获取当前UTC时间
current_utc_time = pd.Timestamp.now(tz='UTC')
# 计算24小时前的UTC时间
one_day_ago = current_utc_time - pd.Timedelta(days=1)
# 筛选数据
last_24h_data = df[df['publishedAt'] >= one_day_ago]

场景B:相对于DataFrame最新记录的过去24小时

如果你的数据集最新记录不是当前时间,想从最新的那条记录倒推24小时获取数据(因为你已经按降序排序了,第一条就是最新的):

# 获取DataFrame中最新的时间(第一条记录的publishedAt)
latest_time = df['publishedAt'].iloc[0]
# 计算最新时间往前24小时的时间点
one_day_before_latest = latest_time - pd.Timedelta(days=1)
# 筛选数据
last_24h_data = df[df['publishedAt'] >= one_day_before_latest]

小提示

  • 如果你的publishedAt列已经是datetime类型了,直接跳过步骤1就行。
  • 一定要注意时区统一!你的数据带Z表示UTC时区,所以计算基准时间时也要用UTC,避免因为时区差导致筛选结果出错。

内容的提问来源于stack exchange,提问作者Sandeep

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 03:50:18