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

Pandas DataFrame如何引用存储在列内的其他列名执行行级计算

问题原因

你原先的写法df[df["MaxColumn"]] += 1 会把MaxColumn列的所有值当做列名,选中对应整列全部加1,完全不符合每行仅修改对应最大值单元格的需求,要么结果错误要么直接报KeyError。

实现方法

方法1:行遍历法(易读,适合小数据量)

直接对每行操作,找到对应列加1即可,代码易理解:

def add_max_val(row):
    row[row['MaxColumn']] += 1
    return row

df = df.apply(add_max_val, axis=1)

方法2:向量化索引法(高效,适合百万级以上大数据量)

用Numpy高级索引直接定位目标单元格修改,无循环性能更高:

import numpy as np

# 获取每行目标列的数字索引
col_index = df.columns.get_indexer(df['MaxColumn'])
# 生成行索引
row_index = np.arange(len(df))
# 对应位置直接加1
df.values[row_index, col_index] += 1
验证结果

用你提供的示例数据运行后,输出结果和你期望的完全一致:

Level1 Level2 Level3 MaxColumn
1    1.5    0.3    0.1    Level1
2    0.2    0.1    1.6    Level3

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 14:36:11