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

如何优雅遍历pandas DataFrame的索引与指定单列数据?

pandas同时遍历索引与指定列的优化写法

你当前使用zip(df.index, df['A'])的实现逻辑完全正确,没有功能问题,针对这个场景pandas提供了更简洁的原生写法,不需要手动拼接两个迭代对象。

最优写法

直接取目标列对应的Series对象,调用其items()方法即可(pandas 1.5及以上版本支持,更早版本可使用功能完全一致的iteritems()方法),该方法原生就会按顺序返回(索引值, 列对应值)的元组:

import pandas as pd
df = pd.DataFrame(index = [10, 20, 30])
df['A'] = [1, 2, 3]
df['B'] = [5, 7, 9]

# 优化后的遍历逻辑
for idx, col_val in df['A'].items():
    print(idx, col_val)

运行输出和你原有代码完全一致:

10 1
20 2
30 3

写法优势

  • 代码更简洁,不需要手动编写zip逻辑,避免出现迭代对象顺序写错、漏传参数的低级错误
  • 性能和原有zip写法几乎无差异,没有额外的运算开销
  • 属于pandas官方推荐的单列遍历范式,代码可读性更强,其他熟悉pandas的开发者可以快速理解逻辑意图

避坑提示

不要为了实现这个需求使用df.iterrows()方法:该方法会逐行遍历所有列的内容,如果你只需要单列的值,会产生大量不必要的性能损耗,当DataFrame数据量较大时运行速度会明显变慢。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 05:31:01