gpt4 book ai didi

python - NumPy 中的 Pandas Series.map 等价物

转载 作者:太空宇宙 更新时间:2023-11-04 00:10:24 25 4
gpt4 key购买 nike

我有一个查找值的字典dictionary = {'a': 1, 'b': 2, 'c': 3, 'd': 3}

我想从 numpy 得到的结果是 pandas.Series.map() 传入字典后返回的结果。例如 series.map(dictionary, na_action='ignore')

注意:这个 series.map() 函数非常快,这让我相信在 numpy API 中一定有一个等价物,而不是我实现一些涉及 numpy.where() 的解决方案 并循环遍历字典键。

最佳答案

这是一个 NumPy 的 -

def map_series_by_dict(s, d):
a = s.values
v = np.array(list(d.values()))
k = np.array(list(d.keys()))
sidx = k.argsort()
out_ar = v[sidx[np.searchsorted(k,a,sorter=sidx)]]
return pd.Series(out_ar, index=s.index)

sample 运行-

In [143]: d
Out[143]: {'a': 1, 'b': 2, 'c': 3, 'd': 3}

In [144]: s
Out[144]:
0 a
1 a
2 c
3 b
4 a
dtype: object

In [145]: map_series_by_dict(s, d)
Out[145]:
0 1
1 1
2 3
3 2
4 1

关于python - NumPy 中的 Pandas Series.map 等价物,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52653043/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com