如何在pandas中按规则将两列替换为计算绝对值的单列
Pandas两列转单列存储差值绝对值的实现方法
你需要的n列是两列数值差的绝对值,下面是几种可行的实现方式:
- 方法1:直接计算生成新数据框,代码最简洁
import pandas as pd # 构造你的示例数据 df = pd.DataFrame({"n1": [10,25,8], "n2": [110,30,40]}) # 直接生成只有n列的新数据框 df = pd.DataFrame({"n": (df["n1"] - df["n2"]).abs()})
- 方法2:在原数据基础上新增列后删除旧列,适合需要保留中间过程的场景
# 新增n列后删除原有两列 df["n"] = (df["n1"] - df["n2"]).abs() df = df.drop(columns=["n1", "n2"])
- 方法3:用apply逐行计算,适合逻辑更复杂的拓展场景
df["n"] = df.apply(lambda row: abs(row["n1"] - row["n2"]), axis=1) df = df.drop(columns=["n1", "n2"])
推荐优先使用方法1或方法2,pandas向量化运算的执行效率远高于逐行的apply操作。
内容的提问来源于stack exchange,提问作者paDU
相关产品推荐
相关产品推荐

