ts = pd.Series({'a' : 1, 'b' : 2})
ids = ['a','c'] # 'c' is not in the index

# the result I want
np.array([ts.get(k, np.nan) for k in ids])

有没有Pandas 本土的方法来实现这一目标?

推荐答案

reindex并访问底层numpy数组:

out = ts.reindex(ids).values

# or
# out = ts.reindex(ids).to_numpy()

输出:array([ 1., nan])

请注意,reindex中的fill_value默认为NaN,如果需要,您可以更改它:

ts.reindex(ids, fill_value=0).values
# array([1, 0])

Python相关问答推荐

如何才能将每个组比上一组增加N %?

customtkinter中使用的这个小部件的名称是什么

将嵌套列表的字典转换为数据框中的行

避免循环的最佳方法

KNN分类器中的GridSearchCV

"Discord机器人中缺少所需的位置参数ctx

如何将我的位置与光强度数据匹配到折射图案曲线中?

按列分区,按另一列排序

在Python Attrs包中,如何在field_Transformer函数中添加字段?

如何使用根据其他值相似的列从列表中获取的中间值填充空NaN数据

如何使用pytest来查看Python中是否存在class attribution属性?

有没有一种方法可以从python的pussompy比较结果中提取文本?

如果条件不满足,我如何获得掩码的第一个索引并获得None?

在含噪声的3D点网格中识别4连通点模式

移动条情节旁边的半小提琴情节在海运

在ubuntu上安装dlib时出错

如果满足某些条件,则用另一个数据帧列中的值填充空数据帧或数组

如何使Matplotlib标题以图形为中心,而图例框则以图形为中心

索引到 torch 张量,沿轴具有可变长度索引

在pandas数据框中计算相对体积比指标,并添加指标值作为新列