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

如何判断Pandas的Volume列中每个后续值均大于前序值?Python实现

判断DataFrame中Volume列是否严格递增的Pythonic实现

给定如下df_trading_pair DataFrame:

Start Date  Open Price  High Price  Low Price  Close Price   Volume                End Date
0 2022-08-06 05:30:00      0.3738      0.3741     0.3737       0.3739  13767.0 2022-08-06 05:32:59.999
1 2022-08-06 05:33:00      0.3739      0.3742     0.3738       0.3741  28212.0 2022-08-06 05:35:59.999
2 2022-08-06 05:36:00      0.3740      0.3743     0.3739       0.3740  47274.0 2022-08-06 05:38:59.999
3 2022-08-06 05:39:00      0.3740      0.3740     0.3737       0.3739  55859.0 2022-08-06 05:41:59.999

要判断Volume列是否每个后续值都严格大于前一个值,原硬编码索引的写法不够灵活,这里提供几种更Pythonic的实现方案:

方案1:使用pandas的diff()方法

diff()会计算序列中后一个元素与前一个元素的差值,通过判断所有差值是否大于0来确认是否严格递增:

volume_series = df_trading_pair["Volume"]
# 计算差值,去掉第一个NaN值,判断所有差值>0,最后取整体结果
is_strictly_increasing = (volume_series.diff().dropna() > 0).all()
print(is_strictly_increasing)

方案2:使用pandas的shift()方法

shift(1)将序列整体下移一位,直接比较当前元素与前一位元素的大小:

volume_series = df_trading_pair["Volume"]
# 比较当前值与前一位值,去掉第一个无效的比较结果,判断全部为True
is_strictly_increasing = (volume_series > volume_series.shift(1)).dropna().all()
print(is_strictly_increasing)

方案3:纯Python列表遍历(兼容非pandas场景)

如果需要脱离pandas依赖,可以将Series转为列表,用zip配对相邻元素进行判断:

volume_list = df_trading_pair["Volume"].tolist()
# 遍历相邻元素对,判断每一对都是前小后大,all()确认全部满足
is_strictly_increasing = all(a < b for a, b in zip(volume_list, volume_list[1:]))
print(is_strictly_increasing)

这些方案的优势在于:无需硬编码索引,适配任意行数的数据集,符合Python和pandas的惯用写法,可读性和扩展性更强。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 12:24:21