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

如何筛选并排序近24小时的数据集?技术问题求助

问题与解决方案

数据示例

Templast_update
3506-21-2023 08:06:21
3406-21-2023 08:06:21

问题描述

CSV文件包含10万+行自1月1日起的温度数据,last_update列为日期时间格式。需要提取近24小时的数据用于仪表盘展示(如以6月21日8点为终点,展示6月20日8点至6月21日8点的温度变化)。尝试使用tf = df['last_update'].last('24h')或df.last('24h')时,报错:('last' only supports a DatetimeIndex index),但last_update已转为日期时间格式。

解决方法

方法1:将日期列设为索引后使用last()

last()方法仅支持DatetimeIndex类型的索引,而非普通的日期时间列。只需将last_update设为索引即可使用该方法:

import pandas as pd

# 确保last_update是datetime类型(若未转换)
df['last_update'] = pd.to_datetime(df['last_update'], format='%m-%d-%Y %H:%M:%S')
# 设置为DataFrame索引
df = df.set_index('last_update')
# 获取近24小时数据
tf = df.last('24h')

# 若后续需要恢复原索引,可执行:
# df = df.reset_index()

方法2:用布尔索引筛选(不修改索引)

如果不想修改原数据的索引结构,直接通过时间范围筛选:

import pandas as pd

# 确保列是datetime类型
df['last_update'] = pd.to_datetime(df['last_update'], format='%m-%d-%Y %H:%M:%S')
# 以数据中的最新时间为基准,计算24小时前的时间点
cutoff_time = df['last_update'].max() - pd.Timedelta(hours=24)
# 筛选出时间范围内的数据
tf = df[df['last_update'] >= cutoff_time]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 03:15:09