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

如何基于其他列指定条件将pandas DataFrame列值与列内特定值相除

Pandas 按指定行基准值整列换算实现方案

实现逻辑

先筛选出A列取值为2015的行对应的B列值作为基准除数,再对全表B列做批量除法运算即可。

完整可运行代码

import pandas as pd

# 构造测试数据集
df = pd.DataFrame({"A" : (2014, 2015, 2016), "B" : (100, 200, 300)})

# 提取A=2015对应的B列值作为换算基准(默认取匹配到的第一个值)
base_value = df.loc[df['A'] == 2015, 'B'].iloc[0]

# 对B列全量做除法换算
df['B'] = df['B'] / base_value

result = df

运行结果验证

输出的result和预期完全一致:

AB
20140.5
20151.0
20161.5

注意事项

如果A列存在多个值为2015的行,可根据业务需求调整基准值的取值逻辑:

  • 取所有匹配行B值的平均值:base_value = df.loc[df['A'] == 2015, 'B'].mean()
  • 取所有匹配行B值的最大值:base_value = df.loc[df['A'] == 2015, 'B'].max()
  • 取所有匹配行B值的最小值:base_value = df.loc[df['A'] == 2015, 'B'].min()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 06:21:00