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

Pandas三重条件查询:指定时间区间取最大交易量对应最低价格

解决方案

你需要先将datetime字段转换为pandas可识别的时间类型,再做时间区间筛选,最后在筛选结果上执行你原来的计算逻辑即可,完整实现如下:
如果你的datetime列已经是datetime类型,可跳过类型转换步骤:

import pandas as pd
# 转换时间列类型
df['datetime'] = pd.to_datetime(df['datetime'])
# 定义时间区间边界
start = pd.to_datetime('2021-09-29 04:15:00-04:00')
end = pd.to_datetime('2021-09-29 06:35:00-04:00')

两种常用实现写法:

  • 链式写法(代码更简洁)
res = df[df['datetime'].between(start, end)].query('volume == volume.max()')['price'].min()
  • 分步写法(逻辑更清晰,便于调试)
# 先筛选符合时间区间的记录
filtered_df = df[df['datetime'].between(start, end)]
# 再取最大交易量对应的最低价格
res = filtered_df[filtered_df['volume'] == filtered_df['volume'].max()]['price'].min()

运行后得到的res值就是预期的2:时间筛选后会排除掉04:00和07:00的两条不符合时间要求的记录,剩余记录中最大交易量为900,对应的价格分别是2、5、22,最小值就是2。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 20:45:10