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

如何用Pandas原生方法按指定索引取值,不存在则填充默认值?

Pandas原生实现指定索引取值并填充NaN

当然有,Pandas提供了简洁的原生方法来满足你的需求,以下是两种实用方案:

方法一:reindex()(最优解)

reindex()是Pandas专门用于调整索引的方法,默认会给不存在的索引填充NaN,完全匹配你的需求:

import pandas as pd
import numpy as np

ts = pd.Series({'a' : 1, 'b' : 2})
ids = ['a','c']

# 生成目标Series后转成numpy数组,和你原来的输出一致
result = ts.reindex(ids).to_numpy()
print(result)  # 输出: [ 1. nan]

如果需要自定义填充值,还可以通过fill_value参数设置,比如ts.reindex(ids, fill_value=0)会把缺失值填充为0。

方法二:基于get()的批量实现

如果你习惯用get()的逻辑,也可以用map()批量处理,本质是对ids列表的每个元素应用ts.get(k, np.nan):

result = np.array(pd.Series(ids).map(lambda k: ts.get(k, np.nan)))

不过这种方式性能不如reindex(),数据量较大时优先选第一种方法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 23:42:42