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

Python中取DataFrame两列绝对值最大值的实现方法

解决方案

你之前的写法失效是因为Python内置的max()是取整个序列的全局最大值,而非对每行的对应元素做比较。以下是几种可行的实现方式:

  • 简洁直观的Pandas原生写法:
    直接选取A、B两列,取绝对值后逐行求最大值:
import pandas as pd

df = pd.DataFrame({"A": [-1,2,3], "B": [-2, 8, 1], "C": [-5, -6, 7]})
df["D"] = df[["A", "B"]].abs().max(axis=1)

这里axis=1指定按行计算最大值,最终得到的D列结果为[2, 8, 3]。

  • 高性能numpy向量化写法:
    用numpy的maximum函数做元素级别的最大值比较,适合处理大型数据集:
import pandas as pd
import numpy as np

df = pd.DataFrame({"A": [-1,2,3], "B": [-2, 8, 1], "C": [-5, -6, 7]})
df["D"] = np.maximum(df["A"].abs(), df["B"].abs())

这种方法避免了临时DataFrame的创建,运算效率更高。

  • 临时拼接列的写法:
    如果需要更明确的步骤,可以先拼接A、B的绝对值列,再求行最大值:
import pandas as pd

df = pd.DataFrame({"A": [-1,2,3], "B": [-2, 8, 1], "C": [-5, -6, 7]})
df["D"] = pd.concat([df["A"].abs(), df["B"].abs()], axis=1).max(axis=1)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 17:48:08