Python中基于DataFrame获取指定区间数据最小值的实现咨询
Pandas K线数据取最小值解决方案
前提说明
假设你的DataFrame是按时间从旧到新排列(即最后一行是最新的5分钟K线),如果数据顺序不对,先执行排序:
df = df.sort_values('timestamp')
以下示例均以low列(最低价)为例,你可以替换为open/high/close/volume等任意列;如果需要取多列的整体最小值,可参考末尾补充说明。
需求实现代码
- 获取最近3条数据中的最小值
# 取最后3行low列的最小值 recent_3_min = df['low'].tail(3).min()
- 获取最近50条数据(排除最新1条)中的最小值
这里指排除最新的1条K线,取它之前的连续50条数据:
recent_50_excl_1_min = df['low'].iloc[-51:-1].min()
- 获取最近50条数据(排除最新2条)中的最小值
排除最新的2条K线,取它之前的连续50条数据:
recent_50_excl_2_min = df['low'].iloc[-52:-2].min()
- 获取最近50条数据(排除最新3条)中的最小值
排除最新的3条K线,取它之前的连续50条数据:
recent_50_excl_3_min = df['low'].iloc[-53:-3].min()
补充:取多列的整体最小值
如果需要获取某几列(比如所有价格字段)的整体最小值,以需求1为例:
# 取最近3条数据中open/high/low/close列的整体最小值 recent_3_multi_col_min = df.tail(3)[['open', 'high', 'low', 'close']].min().min()
内容的提问来源于stack exchange,提问作者zafer
相关产品推荐
相关产品推荐

