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

为何pandas中两次引用Series(第二次带方括号)时索引编号发生变化

Pandas Series 方括号索引运行机制解答

不存在行截断、索引搜索偏移的情况,两次返回结果一致完全是嵌套取值的计算逻辑导致的,逐行拆解执行过程就能看明白:

  • 你通过列表[1,2,3,4]创建test3时,没有指定自定义索引,Pandas会自动生成从0开始递增的整数索引,此时Series的索引和值的映射关系为:
    • 索引标签0 → 存储值1
    • 索引标签1 → 存储值2
    • 索引标签2 → 存储值3
    • 索引标签3 → 存储值4
  • 第一处取值test3[3]的逻辑非常直接:方括号传入整数3时,会优先匹配索引标签等于3的条目,对应取出存储值4,所以第一次打印取值结果为4。
  • 第二处取值test3[test3[2]]是嵌套表达式,Python会优先计算最内层的代码,不存在特殊的索引规则:
    • 先执行内层的test3[2]:匹配索引标签为2的条目,返回存储的整数值3
    • 内层计算完成后,整个表达式等价于test3[3],和上一行的取值语句完全一致,自然返回的结果也是4。

*补充说明:很多新手会误以为Pandas方括号传整数是按位置取数,实际上对于整数类型的索引,方括号默认优先匹配索引标签,只有当传入的整数不在索引标签范围内时,才会触发版本相关的回退逻辑,生产环境更建议明确用loc按标签取、iloc按位置取,避免歧义。你这个测试用例里默认索引的标签刚好和位置下标从0开始一一对应,所以不容易察觉到嵌套计算的过程。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 08:21:24