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

为何DataFrame的shape返回总行数远大于末尾行的索引编号

现象原因

pandas DataFrame的索引值和实际存储的行数量没有强制绑定关系,dfg.shape[0]返回的是真实的总行数,你观察到的索引值偏小,核心原因是索引存在大量重复值,具体常见触发场景如下:

  • 多个DataFrame拼接时未重置索引:比如你拼接了14份左右行索引为0~631225的DataFrame,默认会保留各子DataFrame的原有索引,拼接完成后总长度达到8529019,但最后一行的索引仍然是子DataFrame的最后一个索引值631225
  • 执行过索引重建、分组聚合后手动赋值过重复索引:如果手动给DataFrame批量赋值了非唯一的整数索引,也会出现该情况

验证方法

执行以下代码即可确认:

# 检查索引是否存在重复
print(dfg.index.is_unique)
# 查看唯一索引的总数量
print(dfg.index.nunique())

如果is_unique返回False,且nunique返回值约为631226,就能验证上述判断。

解决方案

如果需要使用连续不重复的整数行索引,执行重置索引操作即可:
dfg = dfg.reset_index(drop=True)
执行后查看最后一行索引值就会变为8529018,和总行数匹配。

内容的提问来源于stack exchange,提问作者Rafael Araújo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 15:36:02