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

如何通过iterrows遍历DataFrame查找负数对应的行列位置

查找Pandas DataFrame中所有负值的位置

你当前用iterrows()逐行遍历的思路是可行的,只需要补全内部的数值判断逻辑即可,另外也提供数据量更大时更推荐的高效实现方案。

基于iterrows()的遍历实现

iterrows()每次循环返回两个值:第一个是当前行的索引,第二个是存储当前行所有列值的Series对象。你只需要在循环内再遍历每行的列名和对应值,判断值小于0时记录位置即可,代码如下:

for row_index, row_content in dataframe.iterrows():
    for col_name, cell_value in row_content.items():
        if cell_value < 0:
            # 按需要输出或者存储结果即可
            print(f"行索引:{row_index},列名:{col_name},负值:{cell_value}")

针对你给出的示例数据,运行后输出结果为:

行索引:abc,列名:456,负值:-9.7
行索引:qwe,列名:123,负值:-6.0

高效向量化实现(推荐大数据量场景使用)

iterrows()是逐行循环的实现,数据量较大时运行效率很低,用Pandas原生的向量化操作可以一次性筛选出所有负值位置,性能提升非常明显:

# 生成布尔掩码,值为True的位置对应原数据中的负值
negative_mask = dataframe < 0
# 提取所有负值对应的(行索引, 列名)元组列表
negative_positions = negative_mask.stack()[lambda x: x].index.tolist()

# 遍历输出结果
for row_idx, col in negative_positions:
    print(f"行索引:{row_idx},列名:{col},负值:{dataframe.loc[row_idx, col]}")

运行输出和遍历方法完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 18:06:18