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

Pandas如何补全Series连续索引并将缺失索引值填充为0?

Pandas Series 连续索引补全填充实现方案

问题场景

现有初始Pandas Series对象:

import pandas as pd
s = pd.Series(1, index=[1,2,3,5,6,9,10])

需要将索引调整为1到10的连续序列,原索引缺失的4、7、8位置填充值为0,目标输出如下:

s = pd.Series([1,1,1,0,1,1,0,0,1,1], index=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10])

最优实现方法

直接使用Pandas内置的reindex方法,指定目标索引范围和缺失填充值即可,一行代码完成操作:

s = s.reindex(index=range(1, 11), fill_value=0)

实现说明

  • reindex会自动对齐新旧索引:原索引存在的位置保留原始值,新索引中存在但原索引缺失的位置,会按照fill_value指定的值填充,这里设为0正好匹配需求。
  • 执行后可直接打印验证结果,和目标Series完全一致:
1     1
2     1
3     1
4     0
5     1
6     1
7     0
8     0
9     1
10    1
dtype: int64

备选实现逻辑

如果需要更直观的分步逻辑,也可以先创建全0的目标索引Series,再用原数据覆盖对应位置,效果完全相同:

s_new = pd.Series(0, index=range(1, 11))
s_new.update(s)
s = s_new

该方法逻辑易懂,但数据量较大时性能略低于直接调用reindex。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 02:39:09