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

Python中如何对索引含'key'的Pandas DataFrame第三列求和?

高效计算Pandas DataFrame中指定索引行的列值之和

嘿,别用for循环啦!Pandas本身就提供了非常高效的矢量化操作,完全能替代这种低效的循环写法。

核心思路

我们可以直接利用Pandas的索引筛选功能,先选出所有索引包含'key'的行,再对目标列求和——全程都是批量操作,比循环快N倍,尤其是数据量大的时候优势特别明显。

具体实现代码

首先要注意:你代码里用了iloc[i,3],这对应的是第四列(因为Pandas的位置索引是从0开始的),但你描述里说的是“第三列”,我把两种情况都列出来:

情况1:目标是位置上的第三列(索引为2)

# 筛选索引含'key'的行,取第三列,求和
total = data[data.index.str.contains('key')].iloc[:, 2].sum()

情况2:目标是你代码里的第四列(索引为3)

total = data[data.index.str.contains('key')].iloc[:, 3].sum()

更推荐的写法(用列名)

如果你知道第三列的列名(比如叫third_col),用loc按列名选择会更清晰,可读性更强:

total = data.loc[data.index.str.contains('key'), 'third_col'].sum()

为什么这个方法更高效?

Pandas的矢量化操作是基于底层的NumPy数组实现的,它会把整个操作转换成C级别的批量计算,而不是像Python for循环那样逐行执行——当你的DataFrame有几万甚至几十万行的时候,这种效率差距会非常显著。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:54:32