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

Pandas逐行循环计算北向南最大梯度的Pythonic优化方法

优化实现方案

直接使用Pandas+Numpy的向量化操作替代循环,代码更简洁,处理大规模数据时性能远高于遍历写法,逻辑和你原有实现完全一致:

import pandas as pd
import numpy as np

# 核心逻辑:向量化计算每行梯度,自动跳过maxSlats和maxNlats相等的行
grad = (
    ms.assign(
        gr = np.where(
            ms['maxSlats'] > ms['maxNlats'], -(ms['maxSlats'] - ms['minNlats']),
            np.where(ms['maxNlats'] > ms['maxSlats'], ms['maxNlats'] - ms['minSlats'], np.nan)
        ),
        col0 = ms.index + 1,
        col1 = ms.index
    )
    .dropna(subset=['gr']) # 过滤两个max相等的行,和原循环逻辑对齐
    .set_index('gr')[['col0', 'col1']]
    .rename_axis(None, axis=0) # 去掉索引列的名称
)
print(grad)

运行以上代码得到的输出和你提供的正确结果完全匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 07:54:02